# .procmailrc - File (für POP3 Accounts) # ------------------ # # Autor : B. Isenbuegel / bjoern(at)b-i-services.de & Support-Liste # Version : 1.2 # Datum : 30.11.2002 # Umgebung: Hostsharing Server # Lizenz : GPL2 # # Ein großes Danke an die support@ Liste für die Hilfe und die ganzen # Infos rund um das Thema procmail, spamassassin. Ohne deren Hilfe # hätte ich es nicht so gut geschafft dies zu erstellen. Ein Teil der # Regeln sind aus der support-Liste entnommen. Mit dieser procmailrc # will ich nur die Infos zusammenfassen und anderen hoffentlich das # Einrichten von spamassassin und einer "vacation"-Lösung erleichtern. # Für vacation kann man anstatt den Regeln natürlich auch das # Programm vacation nutzen. ;) # # P.S.: Rechtschreibfehler können behalten werden! *grins* ;-) # # History: # ======== # # Datum | Ver. | Kommentar # -----------+------+------------------------------------------------- # 29.11.2002 | 1.0 | Erste Version mit spamassassin und spam-rec file # 30.11.2002 | 1.1 | vacation implementiert, listar-bug fixed # 30.11.2002 | 1.2 | Kommentare für Konditions in Vaction 1 geändert # # Installation: # ============= # # - Verzeichnis "procmail" im Home-Verz. erstellen für die Logs # - ".vacation.msg" im Home Verz. mit "Away" Mitteilung erstellen # - Alle Benutzer bezogenen einträge in der .procmailrc anpassen, # die Einträge sind mit "[#....#]" markiert (z.b. [#XYZ00#] ). # - procmailrc.txt ins Home-Verz. kopieren und umbennen zu # ".procmailrc" . # - Mit div. Mails testen. Für Spam-Test kann folgender Befehl genutzt # werden (ohne Zeilenumbruch!): # "zcat /usr/share/doc/spamassassin/sample-spam.txt.gz | mail # -s "SPAMTEST" [#DEINE.HOSTSHARING.ADRESSE#]" # Die spamassassin Infos sind dann im Mailheader zu finden. # # Dateien: # ======== # # - ~/spam-rec -> Gesicherte Spam-Mails mit Spam-Level >= 15, es sei # denn dieser werden gleich nach /dev/null geleitet # # - ~/procmail/procmail.log -> Protokoll Datei von procmail # # - ~/vacation.cache -> Cache von bearbeiteten Mails für vacation-regel # # # Tips: # ===== # # - Ggf. sollte man einen Cronjob einrichten, welcher das procmail.log # von Zeit zu Zeit löscht. # ############################################################################# # .procmailrc init Sektion #---------------------------------------------------------------------------- # Verzeichnis und Datei Definitionen #---------------------------------------------------------------------------- SHELL=/bin/sh # Welche Shell wird genutzt HOMEDIR=/home/pacs/[#XYZ00#]/users/[#USER#] # Home Verzeichnis des Users PMDIR=$HOMEDIR/procmail # procmail Verzeichnis LOGFILE=$PMDIR/procmail.log # globales procmail logfile # Debuging sektion - Debug infos werden in procmail.log geschrieben #---------------------------------------------------------------------------- #VERBOSE=yes # Ausführlich protokollieren ? #LOGABSTRACT=all # Abstrakte Debug info zu jeder mail #---------------------------------------------------------------------------- # Spamassassin Sektion #---------------------------------------------------------------------------- # Nur Mails die kleiner 100 kb sind durch spamassassin prüfen, um den Server # nicht unnötig zu belasten. Spam Mails >100kb sind selten, oder? ;-) # Nachdem spamassassin die Mails geprüft und markiert hat werden die Mails # weiter verarbeitet. #---------------------------------------------------------------------------- :0fw * < 102400 | spamassassin -P # Spamassassin Ergebnis filtern #---------------------------------------------------------------------------- # Mails mit einem score >= 15 sind sicher Spam. # Die Mails werden im HOMEDIR in der Datei spam-rec gesichert, für z.b. # weitere analysen. Man kann sie ggf. auch gleich nach /dev/null leiten. # Dazu anstatt #$HOMEDIR/spam-rec # Mails in spam-rec sichern # diese Zeile angeben #/dev/null # Mails löschen (dev/null) # # Mails mit einem Spam-Level < 15 werden mit einer "*****SPAM*****" # Markierung versehen und normal zugestellt. Man kann diese dann z.b. durch # sein Mailprogram filtern lassen und ab und zu nachsehen ob ggf. eine # "freundliche" Mail gegen den Filter gelaufen ist. #---------------------------------------------------------------------------- :0: * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* $HOMEDIR/spam-rec # Mails in spam-rec sichern # Vacation Nachrichten Handling 1 #---------------------------------------------------------------------------- # Zum Deaktivieren des vacation handlings die beiden Regeln mit # Kommentieren #---------------------------------------------------------------------------- # Wenn Absender noch nicht im cache, dort speichern damit er nur eine Info # bekommt. Vorher prüfen ob mail an den User gerichtet ist und keine # mailingliste oder spam ist und das X-Loop nicht gesetzt ist. # # Beschreibung der einzelnen Regel-Konditionen: # # ^Delivered-To: XYZ00-USER* - Ist diese Nachricht für XYZ00-USER? # !^FROM_DAEMON - Nicht auf Listen/Daemons antworten # !^X-Loop: MAIL-ADRESSE - Loop Info vorhanden? # !^X-Spam-Level: \* - Nicht auf Spam antworten # !^X-list: - Nicht auf Listar Listen antworten #---------------------------------------------------------------------------- #:0 Whc: vacation.lock #* ^Delivered-To: [#XYZ00-USER#]* #* !^FROM_DAEMON #* !^X-Loop: [#MAIL-ADRESSE#] #* !^X-Spam-Level: \* #* !^X-list: #| formail -rD 8192 vacation.cache # vacation Cache prüfen # Vacation Nachrichten Handling 2 #---------------------------------------------------------------------------- # Die folgende Regel sendet die "Away" Nachricht, jedoch nur wenn die obige # Regel nicht gegriffen hat, also wenn der Absender noch nicht im Cache steht. #---------------------------------------------------------------------------- #:0 ehc #| (formail -r \ # -i"Subject: Vacation Info" ; \ # -i"From: [#MAIL-ADRESSE#]" ; \ # -A"X-Loop: [#MAIL-ADRESSE#]" ; \ # cat ~/.vacation.msg; \ # ) | /usr/sbin/sendmail -t -oi -F [#MAIL-ADRESSE#]