Datei auslesen und Inhalt mit smtplib verschicken
Verfasst: Donnerstag 2. November 2023, 09:15
Moin, ich möchte eine Textdatei auslesen und den Inhalt per Mail verschicken.
Leider klappt das nicht.
Die Fehlermeldung beim ausführen lautet:
'str' object has no attribute 'policy'
Das Pythonscript sieht so im Moment so aus:
Kann mir jemand sagen, wie ich den Inhalt der Datei unkompliziert in die Email bekomme ?
Leider klappt das nicht.
Die Fehlermeldung beim ausführen lautet:
'str' object has no attribute 'policy'
Das Pythonscript sieht so im Moment so aus:
Code: Alles auswählen
#!/usr/bin/env python3
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from pathlib import Path
import smtplib
import time
import glob
import os
PORT = 587
VON = 'a@gmx.de'
ZU = 'b@gmx.de'
BENUTZERNAME = 'a@gmx.de'
PASSWORT = 'geheim'
msg = MIMEMultipart()
msg['Subject'] = 'Email'
msg['From'] = 'a@gmx.de'
msg['To'] = 'b@gmx.de'
def sende_email():
with smtplib.SMTP('mail.gmx.net', PORT) as server:
server.ehlo('a@gmx.de')
server.starttls()
server.ehlo('a@gmx.de')
server.login(BENUTZERNAME, PASSWORT)
list_of_files = glob.glob('/pfad/zur/*.txt')
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)
with open(latest_file) as datei:
print(datei.read())
body = datei.read()
msg.attach(body)
server.sendmail(VON, ZU, msg.as_string())
print("Erfolg")
server.quit()
def main():
sende_email()
time.sleep(5)
if __name__ == "__main__":
try:
main()
except Exception as e:
print(e)