Erstellen von Emailnachrichten mit Anhang

Code-Stücke können hier veröffentlicht werden.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Erstellen von Emailnachrichten mit Anhang

Beitragvon Milan » Donnerstag 12. Februar 2004, 18:49

Hier ist eine erste Rohfunktion dafür. Sie ist ziemlich klein und bestimmt für alle die von Nutzen, die wie ich das modul email für zu schwer verständlich und groß halten... Sie erstellt eine Emailnachricht, die nur noch via smtplib versendet werden muss.

Code: Alles auswählen

import base64,md5,mimetypes,os,time

def create_msg(von,zu,betreff,nachricht,mailtyp="plain",dateinamenliste=[]):
    boundary = md5.md5(time.asctime()).hexdigest()
    msg= """From: %s
To: %s
Subject: %s
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s

This is a MIME encapsulated multipart message -
please use a MIME-compliant e-mail program to open it.

Dies ist eine mehrteilige Nachricht im MIME-Format -
bitte verwenden Sie zum Lesen ein MIME-konformes Mailprogramm.

--%s
Content-Type: text/%s; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

%s

"""%(von,zu,betreff,boundary,boundary,mailtyp,nachricht)
    dateinamenliste=filter(os.path.isfile,dateinamenliste)
    for dateiname in dateinamenliste:
        f=open(dateiname,'rb')
        dateiname=os.path.basename(dateiname)
        mimetype=mimetypes.guess_type(dateiname,0)[0] or "application/octet-stream"
        if mimetype.split('/')[0]=="text":
            encoding="7bit"
            temp=f.read()
        else:
            encoding="base64"
            temp=base64.encodestring(f.read())
        f.close()
        msg+="""--%s
Content-Type: %s; name="%s"
Content-Transfer-Encoding: %s
Content-Disposition: attachment; filename="%s"

%s
"""%(boundary,mimetype,dateiname,encoding,dateiname,temp)
    msg+="--%s--" % boundary
    return msg

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder