Seite 1 von 1

Mail mit Anhang versenden

Verfasst: Sonntag 24. August 2008, 17:14
von MotD
Hallo,
ich schreibe gerade ein Programm, was den Anhang einer Mail auslesen soll und ihn dann an ein anderes Programm weitergibt..

Ich habe im Internet bis jetzt keine Lösung gefunden um den Anhang einzeln zu bekommen :(
Ich hoffe jemand von euch kann mir weiterhelfen :)

Vielen Dank im Vorraus
Nicolas

Verfasst: Sonntag 24. August 2008, 18:26
von kaschu
Hi MotD,

ich habe hier mal ein altes Python Programm ausgebuddelt, welches eine E-Mail über stdin liest und ein angehängtes PDF ins aktuelle Arbeitsverzeichnis abspeichert. Das solltest Du für Deine Zwecke aufbohren können:

Code: Alles auswählen

#!/usr/bin/env python

import os, sys
import email, mimetypes

def savemail():
    msg = email.message_from_file(sys.stdin)
    for part in msg.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        filename = part.get_filename()
        if filename and filename.endswith(".pdf") :
            fp = open(filename, 'wb')
            fp.write(part.get_payload(decode=1))
            fp.close()

if __name__ == '__main__':
    savemail()

hth
kaschu

Verfasst: Sonntag 24. August 2008, 18:28
von abgdf
Hi,

da hatte ich mal das hier geschrieben:

http://www.linux-club.de/viewtopic.php?t=78046

(am Ende). Das scheint erstaunlich beliebt zu sein, jedenfalls habe ich dazu schon mehrfach Email-Feedback erhalten.

Die Zeile

Code: Alles auswählen

attachedcontents.append(part.get_payload())
sollte allerdings

Code: Alles auswählen

attachedcontents.append(part.get_payload(decode = True))
lauten, sonst gibt's Codingprobleme. Leider kann ich das nicht auf der anderen Seite ändern, weil der Thread dort gesperrt ist (hatte das dem Moderator dort schonmal gesagt, aber er konnte es wohl irgendwie nicht entsperren).

HTH

Verfasst: Dienstag 26. August 2008, 13:45
von MotD
Vielen Dank ihr beiden :)
Ich habe das Script von abgdf genommen und alles funktioniert problemlos :)

MfG
Nico