Dieses Howto beschreibt, wie man ein System einrichten kann, das ähnlich dem System bei GMX oder web.de täglich eine Mail schickt, in der der Inhalt des Spamordners aufgelistet wird. Ich habe dazu das Skript "mdfrm" von Matthew C. Mead an meine Bedürfnisse angepasst und erweitert. Die Sortierung von Spam in einen "Spamordner" lässt sich pro Account einrichten, ist ohne Aufwand aber auch serverweit nutzbar.
Dieses System wurde auf Debian Woody in Verbindung mit Confixx entwickelt, sollte sich aber ohne weiteres auf andere Linuxe übertragen lassen.
Voraussetzungen:
- funktionierendes Mailsystem mit Spamassassin (in meinem Fall Postfix mit Filterskript für Spamassassin und Anomy Sanitizer)
- Procmail
- Courier-Imapd
- Perl 5.6.1
1.) Einrichten von Postfix für die Auslieferung mit Procmail.
In der Datei /etc/postfix/main.cf folgende Einträge hinzufügen:
Code: Select all
mailbox_command = procmail
local_destination_concurrency_limit = 1
2.) Einstellungen für den Spamordner vornehmen
In der Datei /etc/courier/imapd folgende Zeile editieren:
Code: Select all
IMAP_EMPTYTRASH=Trash:7,Spam:14,Sent:30
Auch hier tut ein "/etc/init.d/courier-imap reload" das Nötige.
3.) Sortierung für die gewünschten Accounts aktivieren:
Einfach eine Datei .procmailrc in /var/mail/wwwXpY mit folgendem Inhalt anlegen:
Code: Select all
DEFAULT="$HOME/Maildir/"
:0
* ^X-Spam-Status: Yes
$HOME/Maildir/.Spam/
Wenn die Sortierung serverweit gewünscht ist, den Eintrag entsprechend in /etc/procmailrc vornehmen.
Von Spamassassin als Spam markierte Mails wandern nun automatisch in den IMAP-Unterordner 'Spam', der auch automatisch angelegt wird falls er nicht existiert.
4.) Die aktuelle Version unter http://www.rootservices.de/spamcheck/ downloaden und in ein beliebiges Verzeichnis entpacken (bei mir ist es in /root/bin).
5.) Anpassungen in "check", "do_check" und "listmaildir" vornehmen. Wichtig hierbei sind $mailhost und $maildomain sowie der Pfad zu den Maildirs und $hours in listmaildir. Der Infotext ist auch beliebig austauschbar ;-)
6.) Den Cronjob anlegen:
crontab -e
Code: Select all
# Spamboxen checken
0 6 * * * /root/bin/spamcheck/do_check
Code: Select all
Insgesamt befinden sich 59 E-Mails in Ihrem Spam-Ordner.
In den letzen 24 Stunden wurden 48 E-Mails aussortiert:
Datum (mtime) Absender Betreff Hits
-------------------------------------------------------------------------
13.05.04 21:19 0001085f@hotmail.com Mail Delivery (failure fabian 14.1
13.05.04 20:56 ferdinand kemper Fwd: All Drugs Here. V , Xan| 52.9
13.05.04 20:29 Israel Dove Re:Just take a look 9.5
13.05.04 20:25 Preston buddhism 14.8
13.05.04 20:25 Eliza Pearson bogey kenya 29.7
13.05.04 19:56 Phillip Blake Buy VÃagra and many other med 29.6
13.05.04 19:14 Adolfo Brunson Your frsiend sent this eemail 13.3
13.05.04 19:07 melynda woodbury Fwd: Here's All Meds. V1AgR@ 54.7
13.05.04 18:56 theo bocchini Cxkepafdyg When Re-fi-nance m 7.6
13.05.04 18:45 Jimmie Jarrett Re:Dirt Cheap Homes embroil 17.1
13.05.04 18:15 Amado danielson 25.1
13.05.04 18:08 Colette couple 7.6
...
Bitte pruefen Sie ob evtl. erwuenschte Nachrichten aussortiert wurden.
Dazu loggen Sie sich entweder per IMAP in Ihr Postfach ein oder
verwenden den Webmailer unter http://webmail.maildomain/
Mit freundlichen Gruessen
postmaster@maildomain
Vielleicht hilfts jemandem was :-)
Changelog:
0.3 (13.05.2004)
- Nun werden auch die Punkte angezeigt, die Spamassassin errechnet hat
0.2 (13.05.2004)
- Skript checkt nun mtime der Maildatei statt Date-Header (wird oft gefälscht)
- mittels $hours in listmaildir kann der Zeitraum der Ã?berprüfung festgelegt werden
- die Mails werden nur dann verschickt wenn auch Spam im Verzeichnis ist
- Ausgabe etwas verschönert
- Skripte umgebaut, checkmaildir überprüft ob überhaupt Mails vorhanden sind und listmaildir zeigt dann den Inhalt an -> nötig für den bedingten Mailversand
0.1 (30.04.2004)
erstes Release
Grüße
ffl