Procmail

Aus Wiki.csoft.at

Inhaltsverzeichnis

Logging

#LOGABSTRACT=ALL
#VERBOSE=on
#COMSAT=yes
COMSAT=no
LOGABSTRACT=no
VERBOSE=no

Weiterleitung

:0
*
! forward@forwarded2.me

Weiterleitung, Kopie am Server belassen

:0 c
*
! forward@forwarded2.me

Weiterleiten von Emails an mehrere Adressen

Möchten Sie die Emails an viele Empfänger weiterleiten, können sie auch

:0 w
* ^From:.*Dagobert
! `cat addressen.txt`

verwenden. Die Datei adressen.txt enthält dabei die Empfängeradressen, eine Adresse pro Zeile.

Weiterleiten aller Emails

Möchten Sie alle verbliebenen Emails an weiterleitung@neu.com weiterleiten, sollten Sie unbedingt die Fehlermeldungen von den Mail-Delivery-Systemen ausnehmen, da sonst leicht Endlosschleifen entstehen können. Die Delivery-Meldungen gehen in den Papierkorb.

:0 w
* !^FROM_DAEMON
! weiterleitung@neu.com

:0 w
/dev/null

Weiterleiten von veränderten Emails

Um den Header einer weitergeleiteten Mail zu verändern, gehen Sie folgendermaßen vor:

:0 cw
* ^Subject:.*New
| formail -k -X "From:" \
-I "To: cb0429@dm.uibk.ac.at" -X "To:" \
-I "Subject: Neues Subject" -X "Subject:" \
| $SENDMAIL $SENDMAILFLAGS -t

Durch die Zeile formail mit den entsprechenden Parametern wird der Header der bestehenden Mail so gekürzt, dass nur noch die von Ihnen gewünschten Informationen bestehen bleiben, z. B. das Subject oder der Absender.

Mit den nächsten Zeilen sorgen Sie dafür, dass dem Header neue Informationen hinzugefügt werden. Dann wird das Ergebnis an Sendmail übergeben.

Der Parameter -t bedeutet hier, dass die Zeilen To: und Cc: die Empfängeradresse beinhalten.

UIDL löschen

# RFC 1725 Post Office Protocol - Version 3
:0 H
*^X-UIDL:
{
  :0 fhw
  | $FORMAIL -IX-Uidl:
}

Postmastermails löschen

Alle Nachrichten, die von postmaster oder von mailer-daemon kommen an forward@forward2.me weiterleiten

:0 H
* ^From: .*(postmaster|mailer-daemon)
!forward@forward2.me

Als gefährlich eingestufte Attachments umbenennen

:0 B
*^Content-type:
{
 :0 B
   *name=.*\.(bat|cmd|chm|com|eml|exe|hta|js|lnk|nws|pif|reg|scr|sh|shs|vbe|vbs|wsf|wsh)|\
   *filename=.*\.(bat|cmd|chm|com|eml|exe|hta|js|lnk|nws|pif|reg|scr|sh|shs|vbe|vbs|wsf|wsh)

 {
   :0 H fhw
     | $FORMAIL -A "X-Content-Security: [$HOST] NOTIFY" \
       -A "X-Content-Security: [$HOST] QUARANTINE" \
       -A "X-Content-Security: [$HOST] REPORT: Possible virus" \
       -A "X-Content-Security: [$HOST] RECIPE: Renamer"

   :0 fbw
     | $SED -e 's/\([nN][aA][mM][eE]=".*\.[bB][aA][tT]\)"/\1.RENAMED"/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[cC][mM][dD]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[cC][hH][mM]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[cC][oO][mM]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[eE][xX][eE]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[eE][mM][lL]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[hH][tT][aA]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[jJ][sS]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[lL][nN][kK]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[nN][wW][sS]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[pP][iI][fF]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[rR][eE][gG]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[sS][cC][rR]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[sS][hH]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[sS][hH][sS]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[vV][bB][eE]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[vV][bB][sS]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[wW][sS][fF]\)/\1.RENAMED/' \
            -e 's/\([nN][aA][mM][eE]=.*\.[wW][sS][hH]\)/\1.RENAMED/'

#    :0 H
#      *^Subject:
#      {
#        :0 fhw
#          | $SED -e 's/\(^Subject: \)/\1[DANGEROUS ATTACHMENT RENAMED] /'
#      }
  }
}


Weblinks