Mails + Python - zip als Angang geht nicht
Verfasst: Dienstag 4. Mai 2010, 09:11
Hallo leute,
ich hab da ein kleines Problem, nach dessen Antwort ich mich seit gestern schon dumm und dämlich suche.
Ich möchte mit meinem Python-Script eine Mail versenden mit einem ZIP-Archiv als Anhang. Im KMail zeigt er es auch an aber zB. unter Outlook oder im RoundCube Webmail wird es nicht angezeigt
Hier mal der Code:
Kann mir da jemand weiter helfen oder zumindest sagen, warum er im KMail angezeigt wird und überall anders nicht?!
MFG Ronny
ich hab da ein kleines Problem, nach dessen Antwort ich mich seit gestern schon dumm und dämlich suche.
Ich möchte mit meinem Python-Script eine Mail versenden mit einem ZIP-Archiv als Anhang. Im KMail zeigt er es auch an aber zB. unter Outlook oder im RoundCube Webmail wird es nicht angezeigt

Hier mal der Code:
Code: Alles auswählen
self.funcSendMail(["xxx@xxx.com", ], ["", ], ["", ], subject, name_of_file, text, text_anhang, os.path.basename(log_file))
def funcSendMail(self, to, cc, bcc, subject, name_of_file, text, text_anhang='', logfile=''):
# Verbindung zum Mail-Server
server = SMTP(options["mail_server"])
msg = MIMEMultipart('alternative')
# Anzeigedaten
msg['From'] = options["mail_from"]
##msg['To'] = (';').join(to)
msg['To'] = options["mail_to"]
##msg['Cc'] = cc
msg['Cc'] = options["mail_cc"]
msg['Bcc'] = options["mail_bcc"]
msg['Subject'] = subject
# Temporäres Log-File erstellen
logfile_tmp = open(logfile, 'w')
logfile_tmp.write(text_anhang)
logfile_tmp.close()
# Log-File öffnen und auslesen
# Zip-Datei erstellen und Log-File hinein schreiben
logfile_in = open(logfile, 'rb')
##logfile_out = gzip.open(logfile+'.gz', 'wb')
##logfile_out.writelines(logfile_in)
##logfile_out.close()
logfile_out = zipfile.ZipFile(logfile+'.zip', 'w')
logfile_out.write(logfile, os.path.basename(logfile), zipfile.ZIP_DEFLATED)
logfile_out.close()
logfile_in.close()
# Text als .txt und .html anfügen
part1 = MIMEText(text, 'plain')
##part2 = MIMEText(html, 'html')
# Zip-Datei Attachment erstellen und anhängen
##path = logfile+'.gz'
path = logfile+'.zip'
ctype, encoding = mimetypes.guess_type(path)
if ctype is None or encoding is not None:
ctype = 'application/octet-stream'
maintype, subtype = ctype.split('/', 1)
fp = open(path, 'rb')
part3 = MIMEBase('application', 'zip')
part3.set_payload(fp.read())
fp.close()
# Encode the payload using Base64
Encoders.encode_base64(part3)
part3.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path))
msg.attach(part1)
##msg.attach(part2)
msg.attach(part3)
# Mail versenden
server.sendmail('xxx@xxx.com', to+cc+bcc, msg.as_string())
# Verbindung zum Server trennen und Temporäre Dateien löschen
server.quit()
os.remove(logfile)
##os.remove(logfile+'.gz')
os.remove(logfile+'.zip')
Kann mir da jemand weiter helfen oder zumindest sagen, warum er im KMail angezeigt wird und überall anders nicht?!

MFG Ronny