E-Mails mit Gmail mit Python senden
Beim Versuch, E-Mails mit der SMTP-Bibliothek von Python über Gmail zu senden, wird möglicherweise eine Fehlermeldung angezeigt, die besagt, dass SMTP AUTH wird vom Server nicht unterstützt.
Fehler Beschreibung:
Der Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt“ tritt auf, wenn Sie versuchen, sich beim SMTP-Server mithilfe der login()-Methode zu authentifizieren, ohne die TLS-Verschlüsselung zu aktivieren.
Lösung mit TLS:
Um dieses Problem zu beheben, aktivieren Sie die TLS-Verschlüsselung, indem Sie diese befolgen Schritte:
import smtplib # Enable TLS encryption server = smtplib.SMTP('smtp.gmail.com:587') server.starttls()
Sobald TLS aktiviert ist, können Sie sich mit der login()-Methode beim Server authentifizieren.
Verwendung von Port 465 mit SSL:
Alternativ können Sie Port 465 mit SSL-Verschlüsselung verwenden. Dazu müssen Sie ein SMTP_SSL-Objekt erstellen:
import smtplib server_ssl = smtplib.SMTP_SSL("smtp.gmail.com", 465) server_ssl.ehlo() # optional, called by login() server_ssl.login(gmail_user, gmail_pwd)
Beachten Sie, dass SSL-Server keine TLS-Verschlüsselung unterstützen oder erfordern, rufen Sie daher nicht server_ssl.starttls() auf.
Beispielskript zum Senden von E-Mails:
Hier ist eine verbesserte Version des Python-Skripts, das im bereitgestellt wird Frage:
def send_email(user, pwd, recipient, subject, body): FROM = user TO = recipient if isinstance(recipient, list) else [recipient] SUBJECT = subject TEXT = body # Prepare actual message message = """From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT) try: server = smtplib.SMTP("smtp.gmail.com", 587) server.ehlo() server.starttls() server.login(user, pwd) server.sendmail(FROM, TO, message) server.close() print('successfully sent the mail') except: print("failed to send mail")
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt' beim Senden von E-Mails mit Gmail und Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!