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