Mail abfragen und Inhalt filtern, separate Datei.

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
root2root
Beiträge: 168
Registriert: 22.10.2007 13:06:29

Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von root2root » 27.10.2011 07:54:33

Hallo Team,
ich suche nach einer Möglichkeit einen Mailinhalt zu filtern.
Dabei soll die Mail analysiert werden und ein Hyperlink nach dem Muster "http:/// XXX.YYY.com/?AAA#xyz"
in eine separate Datei aussortiert werden.

Da es viele Hundert Mails sind macht ein Bash-Script am meisten Sinn, denn ich möchte es "unattended" aufbauen und über den cron-job einsteuern. Der Mailserver, wo diese Mails liegen ist POP3/SMTP fähig und kann von einem Local-Mailprogramm abgefragt werden.

Mein BS: Debian Lenny
Habt Ihr Ideen bzw einen Lösungsansatz ?

Danke und Gruß
root2root

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von Meillo » 27.10.2011 09:37:22

Lade die Mails (z.B. mit fetchmail) runter. Grepe dann mit einer geeigneten RegExp, zum Beispiel folgende aus der Manpage von urlview(1):

Code: Alles auswählen

(((http|https|ftp|gopher)|mailto):(//)?[^ <>"\t]*|(www|ftp)[0-9]?\.[-a-z0-9.]+)[^ .,;\t\n\r<">\):]?[^, <>"\t]*[^ .,;\t\n\r<">\):]
und leite das Ergebnis in eine Datei um.

An sich gar nicht so schwer. ;-)


Umsetzen darfst du es aber selbst (oder sonst wer). :P
Use ed once in a while!

root2root
Beiträge: 168
Registriert: 22.10.2007 13:06:29

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von root2root » 27.10.2011 10:55:54

Hallo Meillo,

danke soweit, noch was zur struktur:
Wo legt fetchmail seine textfiles ab, die dann gescannt werden sollen ?
Oder kann man tatsächlich pipen ( in etwa fetchmail pop3.mailserver.de:userblah/blah | grep blah > urldatei )

Danke und Gruß ?
root2root

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von Meillo » 27.10.2011 12:18:18

root2root hat geschrieben: danke soweit, noch was zur struktur:
Wo legt fetchmail seine textfiles ab, die dann gescannt werden sollen ?
Oder kann man tatsächlich pipen ( in etwa fetchmail pop3.mailserver.de:userblah/blah | grep blah > urldatei )
`man fetchmail' verraet mir:

Code: Alles auswählen

-m <command> | --mda <command>
              (Keyword: mda) You can force mail to be  passed  to  an  MDA  directly
              (rather than forwarded to port 25) with the --mda or -m option.
Verwende zum Testen einfach `fetchmail -k' (keep), dann werden runtergeladene Mails auf dem Server nicht geloescht.
Use ed once in a while!

root2root
Beiträge: 168
Registriert: 22.10.2007 13:06:29

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von root2root » 28.10.2011 20:50:36

Hallo Meillo
Hallo @all

nun bin ich doch früher mal durch dieses tolle Forum auf ngrep gestoßen. 8)

Idealerweise bietet fetchmailrc eine preconnect und postconnect function, siehe http://wiki.notestc.de/index.php/Fetchmail, womit ich durch preconnect mit ngrep aufsetzen, den Traffic parsen und die Links ausrouten würde und mit postconnect den ngrep wieder beenden.

Ohne diesen ganzen mda-kram. :wink:

Was meint ihr, macht das Sinn ? :D

gruß root2root

jkoerner

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von jkoerner » 29.10.2011 20:36:07

Zuerst einmal erkläre ‘mal wie man Sinn macht. Das wollte ich schon immer wissen.... :wink:

Zum Anderen ist zum Abholen fetchmail die erste Wahl. Danach kann man nachschalten was beliebt und die Arbeit sinnvoll erledigt.
Debianprocmail ist ein relativ einfach aufzusetzendes Werkzeug das zur Hauptsache aus einer (oder auch mehreren) Textdatei(en) besteht. Um das für seinen Zweck erfolgversprechend zu konfigurieren gibt es
  • die man procmailex
    und das Netz

In die fetchmailrc bindet man procmail mit einem einfachen

Code: Alles auswählen

mda procmail
ein.
Das ist dann aber doch mit „mda-Kram”. Wobei alles andere auch nichts anderes ist.

root2root
Beiträge: 168
Registriert: 22.10.2007 13:06:29

Re: Mail abfragen und Inhalt filtern, separate Datei.

Beitrag von root2root » 15.11.2011 16:24:40

So, jetzt ist fetchmail mit exim installiert
Ohne exim ( oder einem anderen MDA ) ging es nicht. fetchmail hat nach etablierter verbindung zum mailserver im logfile ständig "SMTP-Failure" gemeldet. 8)
die mails liegen in /var/mail/user, auf die datei dort schicke ich ein $( cat /var/mail/user | grep "_link_" >filtered.lnk ); -> bingo. :D

Eigentlich super, nur daß die mail-datei mittlerweile 262mb groß geworden ist. fetchmail jedesmal alle mails auf dem server zieht. Da muß ich noch etwas an der conf feilen. die juüngsten 1-2 Tage alten mails reichen. :wink:

Es geht weiter :THX:

mfg root2root

Antworten