[Spamcheck] Infomail über den Inhalt des Spamordners

Open-Source-Projekte unserer User
Post Reply
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

[Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Edit: Link zum Changelog: http://www.rootservices.de/spamcheck/changelog.html

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
Danach "/etc/init.d/postfix reload".

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
Damit wird erreicht, dass Spammmails älter als 14 Tage automatisch gelöscht werden.

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/
Dateirechte nicht vergessen zu setzen (600 sollte reichen und natürlich ein chown auf den Owner des Mailusers).

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
Dieser Eintrag sorgt dafür, dass jeden Morgen um 6 Uhr die Mailboxen der in do_check angegebenen Benutzer auf Spammails geprüft werden und eine Mail an den Benutzer verschickt wird, die in etwa so aussieht:

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
Abschließend möchte ich sagen, dass ich mir das Skript innerhalb der letzten 3 Tage zusammengebastelt habe. Es tut was es soll, ist aber quick 'n' dirty. Falls jemand Verbesserungsvorschläge hat, bitte in diesen Thread posten!

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
Last edited by ffl on 2004-05-17 18:53, edited 9 times in total.
User avatar
nyxus
Posts: 626
Joined: 2002-09-13 08:41
Location: Lübeck
Contact:
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by nyxus »

Klasse Sache. Kleiner Verbesserungsvorschlag: Spam-Mails, die schon einmal gemeldet worden sollten mit einer Trennlinie separiert werden. Dann muß man nicht immer überlegen wie weit man die Liste durchsuchen muß.
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Hi,

ich denke das erübrigt sich eigentlich dadurch, dass zwischen zwei Tagen immer ein Zeilenumbruch eingefügt wird - dadurch sieht man das auch. Werd aber trotzdem mal schauen ob ich das irgendwie einbauen kann.
thorsten
Posts: 561
Joined: 2003-02-01 13:14
Location: Fuldatal
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by thorsten »

Sehr schön - das Script gefällt mir!

Ich denke aber, dass du es dem User überlassen könntest wie viele Tage er sich anzeigen lassen möchte.
Evtl. lässt sich ja noch ein config Schalter für jede Mailbox anlegen.

Da die Mail eh jeden Tag kommt, reichen IMHO auch 2-3 Tage in der Anzeige.
Ansonsten kannst du bei stark frequentierten Mailboxen u.U. doch eine recht große Mail lostreten...
User avatar
nyxus
Posts: 626
Joined: 2002-09-13 08:41
Location: Lübeck
Contact:
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by nyxus »

FFL wrote:ich denke das erübrigt sich eigentlich dadurch, dass zwischen zwei Tagen immer ein Zeilenumbruch eingefügt wird - dadurch sieht man das auch.
ok, dann würde ich den Zeilenumbruch aber um 6:00 machen, denn dort wird ja immer die Mail generiert.
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Gute Ideen, ich schau mal :)
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by captaincrunch »

Wäre das Script nicht etwas für unser "Userprojekte unter freien Lizenzen"? Das ganze ließe sich doch bestimmt noch wunderbar ausbauen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Stimmt, wenn du möchtest kannst du den Thread da reinschieben - weiß aber nicht wieviel Zeit ich in die Entwicklung stecken werde, da ich am Studieren bin :roll:
chris76
Posts: 1878
Joined: 2003-06-27 14:37
Location: Germering
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by chris76 »

FFL wrote:Stimmt, wenn du möchtest kannst du den Thread da reinschieben - weiß aber nicht wieviel Zeit ich in die Entwicklung stecken werde, da ich am Studieren bin :roll:
Das mit dem verschieben habe ich schon mal erledigt :)
Gruß Christian

BofH excuses: YOU HAVE AN I/O ERROR -> Incompetent Operator error
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

feines Teil. Respect. :-D Wie wendet man denn den Befehl in do_check

Code: Select all

./check web9p1
auf mehrere User an? ./check web9p1 web9p2 web9p3 ? Oder wie?

Und wie kann man Confixx-Webmail dazu bewegen, dieses Unterverzeichnis anzuzeigen.

Ich arbeite mit Maildir, nicht mit IMAP. Ansonsten klappt aber alles. Danke.
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Hi,

einfach nacheinander aufrufen. Man könnte auch eine Schleife einbauen aber soweit bin ich noch net ;)

Gruß
ff
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

Code: Select all

./check web9p1
./check web9p2
./check web9p3
SO gehts, habs schon "rausgefunden". :wink: Das Problem ist noch ein anderes. Wenn man alle User checken lässt, bekommen die, die noch keinen .Spamordner haben, eine für sie kryptische Mail. Ich habs so gelöst:

Code: Select all

Zeile 30 orig = print "Something is wrong with "$maildir".  Please check its structure and permissions.n";
ändern in

Code: Select all

print "Es gibt ein Problem mit dem Ordner: "$maildir".n";
print "Evtl. haben Sie noch keinen Spam erhalten.n";
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Danke, werd ich bei Gelegenheit einbauen.

Gruß
ff
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

meine Frage weiter nördlich, mit Confixx-Webmail, kannst Du wohl nicht beantworten? :)
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Oh, sorry.

Nein, kann ich nicht. Ich glaube Confixx-Webmail löst den Zugang über POP3 und da gehen Ordner nicht. Nimm doch einfach Squirrelmail, das kann alles :)

Gruß
ff
tastengott
Posts: 19
Joined: 2003-07-26 07:51
Location: MD
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by tastengott »

Tolle Sache!
Sowas hab ich schon lange gesucht.

Eine kleinen Verbesserungsvorschlag hätte ich noch.

Es ist vielleicht ganz günstig, wenn man eine Abfrage einbaut, ob in dem Ordner überhaupt Spam ist.
Ansonsten bekommt man ja auch eine Mail, wenn gar kein Spam da ist.

Gruß,
Marcus
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

FFL wrote:....Nimm doch einfach Squirrelmail ..
Genau. Danke. Funktioniert. :)
ffl
Userprojekt
Userprojekt
Posts: 269
Joined: 2002-10-23 08:28
Location: Karlsruhe
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by ffl »

Hi,
die Abfrage ist eingebaut, ich werde irgendwann in den nächsten Tagen eine neue Version bereitstellen, da ich mir erst noch eine Funktion bauen möchte, damit nur noch die 50 neuesten Mails angezeigt werden.

Danke für den Tip!

Edit: neue Version ist bereits fertig! (siehe erstes Posting im Thread)

Gruß
ff
syro
Posts: 26
Joined: 2003-10-23 22:10
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by syro »

Hi, ich habe über YAST Courier-Imap 2.1.1 installiert und danach Daemon gestartet. Wie kriege ich es nun hin, dass die Postfächer in Ordner verschoben werden ?
Ich nutze Confixx3 wie der Author auch, muss ich noch etwas in die confixx_main.conf reinschreiben, sodass der imap server überhaupt von confixx erkannt wird?

mfg syro
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

FFL wrote:Hi,
Edit: neue Version ist bereits fertig! (siehe erstes Posting im Thread)
Perfect. Gratulation. :-D Jetzt fehlt nur noch eins. :wink:
Wenn in den letzten 24 Std. keine Mails aussortiert wurden, sollte "0" oder "keine" stehen. Geht das? Sicher möglich. If - else Abfrage?
Last edited by adjustman on 2004-05-17 01:06, edited 1 time in total.
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

syro wrote:
..sodass der imap server überhaupt von confixx erkannt wird?
Nein, IMAP hat dann mit Confixx nix zu tun. Is`n separater WebMailer.
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

FFL wrote:

Code: Select all

IMAP_EMPTYTRASH=Trash:7,Spam:14,Sent:30
Damit wird erreicht, dass Spammmails älter als 14 Tage automatisch gelöscht werden.l
Und das funktioniert? Gibts da ne Cronmeldung, wenn was gelöscht wurde?
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by oxygen »

nope, das mach der courier ohne hilfe von cron.
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by adjustman »

:-D ja, ok. Ich wollt bloss wissen, ob ichs direkt mitkriege.
syro
Posts: 26
Joined: 2003-10-23 22:10
 

Re: [Spamcheck] Infomail über den Inhalt des Spamordners

Post by syro »

wie kann ich einstellen das ordner für die postfächer angelegt werden, hinbezüglich von courier-imap. Ich lege Postfächer in Confixx mit Postfix an und die Fächer werden in /var/spool/mail als Einzeldatei angelegt. Doch wie kann ich es ändern, sodass ein Ordner pro Postfach unter /var/spool/mail angelegt wird.
Order muss ich mit Hilfe von Courier-Imap irgendwas erstellen?

Sorry ich stehe dies bezüglich gerade auf dem Schlauch.

mfg
Post Reply