[Postfixbuch-users] HOWTO: Autoresponder optimal aufsetzen?
Dennis Guhl
lists at dguhl.org
Mi Feb 2 01:36:37 CET 2011
On Tue, Feb 01, 2011 at 07:02:26PM +0100, Michael Grimm wrote:
> Hi --
Moin
> Ich möchte so etwas Ähnliches wie echo(bei)tu(minus)berlin(punkt)de einrichten,
> d.h. einen Autoresponder. Mir fehlt aber schlichtweg die Erfahrung, überblicken
> zu können, an welcher Stelle ich diesen in meinem momentanen Setup am besten
> einzufügen soll.
>
> Das Autoresponder-Script soll als Parameter relevante Headerinhalte und die
> erhaltene Mail empfangen können. Ich möchte alle smtp_recipient_restrictions
> bis einschließlich reject_unauth_destination durchlaufen haben, bevor die Mail
> an die Autoresponder-Adresse bouncen soll.
Da bietet sich eben das ursprüngliche Script der TU Berlin an. Im
Anhang findest Du meine aktuell bei werkelnde Version (die ich von
Ralf Hildebrandt vor ca. sechs bis acht Jahren bekam und immer mal an
Inkompatibilitäten angepasst habe).
> Nach meinem laienhaften Verständnis, könnte ich ein Autoresponder-Sript in einer
> check_recipient_access pcre-Tabelle ansprechen a la (http://www.postfix.org/access.5.html) ...
>
> /echo at tld.example/ FILTER transport:destination
Sinnvoller ist es das über eine transport map zu erledigen:
# postconf -n | grep transport_maps
transport_maps = btree:/etc/postfix/transport
# cat /etc/postfix/transport
echo at dguhl.org echo:
Dazu gibt es in der master.cf einen entsprechenden Eintrag:
# grep -A1 "^echo" /etc/postfix/master.cf
echo unix - n n - - pipe
flags=DRhu user=nobody argv=/usr/lib/postfix/mailecho
Das Script 'sieht' folgendermaßen aus:
# ls -la /usr/lib/postfix/mailecho
-rwxr-xr-x 1 postfix postfix 1343 2011-02-02 00:12 /usr/lib/postfix/mailecho*
> ... wobei ich transport in master.cf definieren müßte a la (http://nefaria.com/project_index/autoresponse/) ...
>
> transport unix - n n - - pipe
> flags=Fq user=autoresponse argv=/usr/local/sbin/autoresponse -s ${sender} \
> -r ${recipient} -S ${sasl_username} -C ${client_address}
>
> ... wobei mir unklar ist, wie ich destination zu benennen hätte?
>
> Bevor ich das ausprobiere und eventuell etwas vermurkse, möchte ich ein paar
> Fragen an die Experten loswerden:
>
> - Ginge das überhaupt, wie gerade beschreiben?
> - Gibt es bessere Ansätze, falls nicht?
Der oben gezeigte dürfte in diese Kategorie fallen ;)
Dennis
-------------- nächster Teil --------------
#!/bin/sh
#set -x
DATE=`/bin/date`
IN=/tmp/ECHO-INPUT.$$
OUT=/tmp/ECHO-OUTPUT.$$
PID=$$
rm -f $IN $OUT
cat > $IN
SUBJECT=`grep "^Subject: " $IN | head -1 | sed "s,^Subject: ,,"`
SENDER=`grep "^From: " $IN | head -1 | sed "s,^From: ,,"`
#SENDER=guhl at ikt.de
if [ "$SENDER" = "" ]
then
/usr/bin/logger -t echo -i -p mail.info "< From=<>, ignored."
rm $IN
exit 0
else
/usr/bin/logger -t echo -i -p mail.info "< From=<$SENDER>"
fi
echo "From: Mail Echo <echo at dguhl.org>" > $OUT
echo "Subject: Re: $SUBJECT" >> $OUT
echo "To: $SENDER" >> $OUT
echo >> $OUT
cat <<EOT >> $OUT
You have successfully reached the server
DrHouse.leere.eu in Frankfurt, Germany
In case of problems please contact:
Postmaster at dguhl.org
If you want to use this service for routine monitoring, you *MUST* ask
postmaster at dguhl.org for permission before doing so.
------ This is a copy of your message, including all the headers. ------
EOT
sed 's/^/> /' $IN >> $OUT
echo >> $OUT
echo " Automagically brought (back) to you by" >> $OUT
echo " dguhl.org Echo Processor" >> $OUT
# /usr/lib/sendmail -f"Echo-Daemon at TU-Berlin.DE" -t < $OUT
/usr/sbin/sendmail -t -f "" < $OUT
/usr/bin/logger -t echo -i -p mail.info "> to=<$SENDER>"
rm -f $IN $OUT
exit 0
Mehr Informationen über die Mailingliste Postfixbuch-users