Procmail / procmailrc - Start eine Programmes

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.

Hallo

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?

Se „ezmlm“ bastian

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

Nicht, dass du denkst, ich will Spam beteiben?

Nein.

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.

Se „genau da!“ bastian

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.

Mailinglisten

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.

So?

http://mirrors.sunsite.dk/ezmlm/faq-0.32/FAQ-5.html

Glaub mir, die Methode, die Du Dir ausgedacht hat, wird nicht funktionieren, wie Du es Dir vorstellst.

Versprochen.

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

Alexander

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

Danke, so ungefähr hatte ich mir das vorstellt.

Haken an der Sache:

  • 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).

Sebastian

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?

http://www.ezmlm.org/
http://www.wcug.wwu.edu/sloth/userguide/ezmlm-howto…
http://www.math.fu-berlin.de/~kesim/ezmlm/

Sebastian

Danke, so ungefähr hatte ich mir das vorstellt.

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.

Alexander