[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Mailhandling



Hallo,

unser Server holt die Mails mit fetchmail ab. Diese werden an die User
verteilt. Im Userverzeichnis liegt eine .forward-Datei

Dort steht unter anderem folgendes:

if $header_subject: contains "Testsubject"
and $header_to: contains "empfaenger@email.de"
then
   pipe "/home/user/handlemail.sh body_store /data/user/mailablage"
endif

if $header_from: contains "absender@email.de"
and $header_to: contains "empfaenger@email.de"
then
   pipe "/home/user/handlemail.sh attach_store /data/user/attach"
endif

if $header_from: contains "absender2@email.de"
and $header_to: contains "empfaenger@email.de"
then
   pipe "/home/user/handlemail.sh attach_unzip /data/user/attach"
endif


Dies bewirkt, das Mails mit den abgefragten Kriterien an die
handlemail.sh weitergeleitet werden. Die Funktion body_store speichert
den Bodytext der Mail in einer Datei. Die Funktion attach_store
speichert den Anhang der Mail in einem bestimmten Ordner, attach_unzip
entpackt den Anhang und speichert diesen in einem bestimmten Ordner

Die handlemail.sh sieht folgendermassen aus:

#!/bin/sh
# UM 2001
# Die 06 Nov 2001 23:52:11 CET

case $1 in
body_store)
    # remove msg header and store file (2nd arg: dir, 3rd arg: prefix)
    /bin/sed '1,/^$/d' > $2/$3.$MESSAGE_ID.txt
;;

attach_store)
    # store attached files (2nd arg: dir)
    /usr/bin/munpack -f -q -C $2 2>/dev/null
    # instead, NOT to overwrite existing files:
    #/usr/bin/munpack -f -q -C $2
;;

attach_unzip)
    # store attached files and unzip (2nd arg: dir)
    FILES=`/usr/bin/munpack -f -q -C $2 2>/dev/null | /bin/sed
's/^\(.*\.zip\) .
    for FILE in $FILES ; do (
        /usr/bin/unzip -qqo $FILE
    );
    done
;;
esac
exit

Dies funktioniert alles wunderbar und hat bisher immer ausgereicht. Nun
benötige ich jedoch abgewandelte Funktionen, die die komplette Mail
inkl. Header abspeichert, also inkl. Absender, Subject, Sendezeit usw.,
und bei Bedarf auch mit (entpacktem) Attachment.
Ist sicher nur eine Kleinigkeit, das umzuschreiben, aber leider bin ich
da nicht so bewandert. Vielleicht kann mir da jemand auf die Sprünge
helfen ? Vielen Dank im Voraus.

Ralph Lieske



Reply to: