Warum kommt die ganze Zeit diese Fehlermeldung?

2 Antworten

emailText = "< Test"

sieht mir komisch aus.

In vielen Programmiersprachen muss man das escapen.

Also etwa " /< Test" schreiben.

Bitte schlage nach, ob das bei Dir der Fall ist und wie genau es geschrieben werden muss. D.h. ein Problem stellt oft dar, wenn ein nicht-ASCII Zeichen innerhalt eines Strings steht.

Python selbst spreche ich leider nicht.

Woher ich das weiß:Berufserfahrung – ich arbeite schon sehr lange im EDV Bereich, viele Sparten
Civjik3 
Fragesteller
 07.08.2021, 14:57

Auch wenn das "<" weg ist kommt die Fehlermeldung noch

0
Mauritan  07.08.2021, 18:52
@Civjik3

dann probiere aufzulösen

msg.attach(MIMEText(emailText, 'html'))
also die Zuweisung vereinfachen, Zwischenvariable einfügen, Zwischenausgabe,...
0

Ändere

from email.MIMEText import MIMEText

zu

from email.mime.text import MIMEText
Civjik3 
Fragesteller
 07.08.2021, 15:39

Jetzt kommt aber die Fehlermeldung:

Traceback (most recent call last):
  File "C:/Users/####/Documents/rhhioafrdsbgjnlövhjhmcgcdyf.py", line 15, in <module>
    server = smtplib.SMTP('#############', 587)
  File "C:\Users\###\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Users\phili\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 341, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Users\####\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 312, in _get_socket
    return socket.create_connection((host, port), timeout,
  File "C:\Users\#####\AppData\Local\Programs\Python\Python39\lib\socket.py", line 822, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "C:\Users\######\AppData\Local\Programs\Python\Python39\lib\socket.py", line 953, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11003] getaddrinfo failed


1
andie00  07.08.2021, 16:05
@Civjik3

Sorry, hab ich übersehen:

server = smtplib.SMTP('email@gmx.de', 587) 

ist auch falsch, gmx nutzt mail.gmx als Adresse für deren SMTP Server, daher z.B.:

server = smtplib.SMTP('mail.gmx.de', 587)
0
Civjik3 
Fragesteller
 08.08.2021, 20:42
@andie00

Die Fehlermeldung kommt immer noch

1
andie00  08.08.2021, 21:22
@Civjik3

Dieselbe oder eine andere Fehlermeldung?

Hast du POP3 und IMAP Zugriff in deinem Gmx-Konto erlaubt?

Bei mir funktioniert folgender Code einwandfrei:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

senderEmail   = "EMAIL@gmx.net"
empfangsEmail = "EMAIL@gmx.net"

msg = MIMEMultipart()
msg['From']    = senderEmail
msg['To']      = empfangsEmail
msg['Subject'] = "Test"

emailText = "< Test"

msg.attach(MIMEText(emailText, 'html'))

server = smtplib.SMTP('mail.gmx.de', 587)
server.starttls()
server.login(senderEmail, "PASSWORT")                  

text = msg.as_string()

server.sendmail(senderEmail, empfangsEmail, text)
server.quit()

EMAIL und PASSWORT musst du an deine Gegebenheiten anpassen.

0
Civjik3 
Fragesteller
 09.08.2021, 10:02
@andie00

Bei mir gibt es einen Server für den Eingang und ein anderen für den Ausgang ist das das Problem?

1