Hallo,
folgende Aufgabe habe ich zu lösen:
Wenn im Body einer email eine bestimmte Zeichenkette vorkommt, dann möchte ich daraus etwas extrahieren und als Parameter für ein Programm verwenden.
Beispiel - im Body taucht dieser Text auf:
----- The following addresses had permanent fatal errors ----- [email protected]
Dann möchte ich ein Programm aufrufen, welches [email protected]
als Parameter bekommt. Außerdem soll die Mail selbst nach /dev/null geleitet werden, denn wer läßt sich schon gerne von non delivery Messages nerven. (normale Mails werden geforwardet)
Ein wenig habe ich zwar schon in den manpages gelesen, aber so richtig bin ich noch nicht weiter gekommen.
Kann jemand helfen, wie .procmailrc aussehen muss?
Schönen Dank schon mal.
Wenn im Body einer email eine bestimmte Zeichenkette vorkommt,
dann möchte ich daraus etwas extrahieren und als Parameter für
ein Programm verwenden.
Beispiel - im Body taucht dieser Text auf:
----- The following addresses had permanent fatal errors ----- [email protected]
Dann möchte ich ein Programm aufrufen, welches [email protected]
als Parameter bekommt. Außerdem soll die Mail selbst nach
/dev/null geleitet werden, denn wer läßt sich schon gerne von
non delivery Messages nerven. (normale Mails werden
geforwardet)
Ich hab das Gefühl, Du suchst etwas anderes: Wozu genau willst Du das, was Du hier tust einsetzen? Was genau ist Dein Ziel?
Nicht, dass du denkst, ich will Spam beteiben?
Ich betreibe auf meinem Webserver eine Domain für Fitnessinteressierte - du kannst es dir gerne mal ansehen unter http://www.fitnesswelt.com/ .
Unter anderem habe ich dort ein Forum zu laufen, wo sich interessierte User per E-Mail die Beiträge zustellen lassen können.
Leider nutzen das einige Spassvögel aus, indem sie irgendwelche schrottigen und nicht existenten eMail adressen angeben.
Einige sind auch schon lange angemeldet, aber die Mailadresse existiert nicht mehr.
Ich bekomme dann immer die „non delivery messages“ zurück. Ich möchte zum einen auf diese Weise meine Datenbank reinigen und zum zweiten nicht diese unsinnigen non delivery messages an meinen POP3 Account weiterleiten.
Gruß - Torsten
Unter anderem habe ich dort ein Forum zu laufen, wo sich
interessierte User per E-Mail die Beiträge zustellen lassen
können.
Eine Mailingliste.
Leider nutzen das einige Spassvögel aus, indem sie
irgendwelche schrottigen und nicht existenten eMail adressen
angeben.
Einige sind auch schon lange angemeldet, aber die Mailadresse
existiert nicht mehr.
Ich bekomme dann immer die „non delivery messages“ zurück. Ich
möchte zum einen auf diese Weise meine Datenbank reinigen und
zum zweiten nicht diese unsinnigen non delivery messages an
meinen POP3 Account weiterleiten.
Dazu hast Du vermutlich keinen Bock.
Du solltest Dir einen Mailinglistenmanager installieren, der das ohne jedes Zutun löst.
Ich habe genau das vermutet, was Du willst, deshalb habe ich in meiner ersten Antwort den meiner Meinung nach besten bereits genannt.
Na, nicht ganz eine reine Mailingliste. Es ist eine Nutzerverwalung mit Datenbank dahinter, die betreffenden User werden per SQL selektiert, deshalb hilft dein Tipp noch nicht wirklich.
Na, nicht ganz eine reine Mailingliste. Es ist eine
Nutzerverwalung mit Datenbank dahinter, die betreffenden User
werden per SQL selektiert, deshalb hilft dein Tipp noch nicht
wirklich.
Hallo,
folgende Aufgabe habe ich zu lösen:
Wenn im Body einer email eine bestimmte Zeichenkette vorkommt,
dann möchte ich daraus etwas extrahieren und als Parameter für
ein Programm verwenden.
Beispiel - im Body taucht dieser Text auf:
----- The following addresses had permanent fatal errors ----- [email protected]
Dann möchte ich ein Programm aufrufen, welches [email protected]
als Parameter bekommt. Außerdem soll die Mail selbst nach
> 0 B
\* ^FROM\_MAILER
\* The following addresses had permanent fatal errors -\*$\/.\*
| programm $MATCH
oder so ähnlich
/dev/null geleitet werden, denn wer läßt sich schon gerne von
non delivery Messages nerven. (normale Mails werden
geforwardet)
Nach der ersten delivery - Regel macht procmail Schluss wenn nicht anders angegeben, also überflüssig.
Ein wenig habe ich zwar schon in den manpages gelesen, aber so
richtig bin ich noch nicht weiter gekommen.
man procmailex ist hilfreicher als die von manpage von procmailrc
Danke, so ungefähr hatte ich mir das vorstellt.
Der Paramert ist also in $MATCH? Muss ich denn dann nicht den zu suchenden Ausdruck irgendwie in Klammern stellen, damit er in der Variable dann drin ist?
Und wozu brauche ich die ^FROM_MAILER Zeile?
0 B
* ^FROM_MAILER
* The following addresses had permanent fatal errors -*$/.*
| programm $MATCH
Nicht jeder Mailserver hat so eine Fehlermeldung. Exchange hat völlig schlecht auswertbare zum Teil.
Wenn eine Adresse bei email.com an Hotmail weiterleitet und das Hotmail-Fach ist voll, bekommst Du eine Fehlermeldung, daß an die Hotmail-Adresse nicht zugestellt werden kann. Die existiert aber nicht in Deinem Verteiler.
Bevor Du Arbeit investierst: Vergiß das Konzept.
Installiere Dir einen Mailinglisten-Manager (ezmlm sinnvollerweise).
Ja ja, du hast schon recht, man müßte einige Filter erstellen. Allerings könnte man den Großteil der Problemfälle so erschlagen, damit wäre schon geholfen.
Ich schau mir deinen Tipp auf jeden Fall an, ich hoffe nur, die Migration von meiner bestehenden Lösung ist nicht zu kompliziert, ich habe im Moment wenig Zeit übrig, mich da sehr lange mit zu beschäftigen. Hast du irgendwo einen Link für eine einfache Kochanleitung, was das Programm alles kann und wie es eingerichtet wird?
Ja ja, du hast schon recht, man müßte einige Filter erstellen.
Allerings könnte man den Großteil der Problemfälle so
erschlagen, damit wäre schon geholfen.
Naja, das wäre mir zu viel Zeit, solche Filter zu basteln.
Ich schau mir deinen Tipp auf jeden Fall an, ich hoffe nur,
die Migration von meiner bestehenden Lösung ist nicht zu
kompliziert, ich habe im Moment wenig Zeit übrig, mich da sehr
lange mit zu beschäftigen.
Du wirst um qmail nicht herumkommen, dann ist das simpel.
Hast du irgendwo einen Link für
eine einfache Kochanleitung, was das Programm alles kann und
wie es eingerichtet wird?
Die erste Zeile muss natürlich „Doppelpunkt 0 B“ sein, das Forum mag den Doppelpunkt leider nicht.
Der Paramert ist also in $MATCH? Muss ich denn dann nicht den
zu suchenden Ausdruck irgendwie in Klammern stellen, damit er
in der Variable dann drin ist?
In $MATCH steht das drin, was auf den Ausdruck nach / matcht.
Und wozu brauche ich die ^FROM_MAILER Zeile?
Geht sicher auch ohne, die vergleicht, ob der Absender (From:smile: nach einem Mailprogramm aussieht. Der komplette Ausdruck, der da verwendet wird, steht in der Doku.
Aber natürlich muss ich Sebastian recht geben, eine „richtige“ Mailinglistensoftware macht so etwas wesentlich besser.