[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ahänge von Emails abtrennen



Hallo,

Peter Kuechler schrieb am Donnerstag, den 04.12.2008 um 10:47:
> Ich habe folgendes Problem, vielleicht weis ja einer von euch eine
> Lösung bevor ich selber anfange eine zu stricken (wozu ich eigentlich
> keine Zeit habe:-( )
> 
> Ich bekomme Emails zugeschickt, an den hängen mit zip gepackte logfiles.
> Ich hätte gerne ein Program/Script, dem ich die Mail in einer Pipe
> übergeben kann und das mir als Ergebnis die angehängte Datei liefert.
> Übergabe durch eine Pipe deshalb, weil ich als Mailclient Evolution
> benutze, dort Filter erstellt habe und es eine Filtermöglichkeit gibt,
> wo man die Mail an ein externes Program übergeben kann. Das wird dort in
> einer Pipe erledigt.
> 
> 
> Hat da jemand von euch einen Tip/Script/Program?

Auf fast jedem Linux System ist heute die sehr einfach benutzbare
Skript-Sprache Python installiert.  Die Standard-Bibliothek von
Python enthält ein sehr mächtiges Paket zum Umgang mit email.
In der Dokumentation dazu befinden sich Beispiel-Skripte, von denen
eines schon fast genau das macht, was hier gewünscht ist.  

Hier der Link:
   http://docs.python.org/library/email-examples.html

Ich meine das Beispiel mit der Überschrift 
  "Here’s an example of how to unpack a MIME message like the one above, 
   into a directory of files:"
Dieses Beispiel-Skript erwartet aber eine E-Mail-Datei als Aufruf-Parameter.
Wenn mit folgender kleinen Änderung in dem Skript die folgenden drei Zeilen 

    fp = open(msgfile)
    msg = email.message_from_file(fp)
    fp.close()

durch folgende ersetzt werden:

    if msgfile == "-":
        fp = os.fdopen(sys.stdin)
    else:
        fp = open(msgfile)
    msg = email.message_from_file(fp)
    if not msgfile == "-":
        fp.close()

dann sollte es die E-Mail auch von stdin aus einer Pipe lesen können.

Beim Ändern des Skriptes daran denken, dass die Einrückungen
der Zeilen sehr wichtig sind und nicht wahllos verändert werden
dürfen.  Beim Aufruf dann einfach statt eines Dateinamens "-" übergeben.

Warnung: Ich habe das nicht ausprobiert.
 
Mit freundlichen Grüßen,
Peter Funk
-- 
Peter Funk, ✉Oldenburger Str.86, D-27777 Ganderkesee, Germany 
office: ArtCom GmbH, ✉Lise-Meitner-Str. 5, D-28359 Bremen, Germany 
tel:+49-421-20419-0 cell:+49-179-640-8878
<http://www.artcom-gmbh.de/>


Reply to: