Heim >Backend-Entwicklung >Python-Tutorial >Wie behebt man den Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt' beim Senden von E-Mails mit Python und Gmail?
Das Senden von E-Mails über Gmail mit Python kann eine unkomplizierte Aufgabe sein, aber gelegentlich können Fehler auftreten. Ein solcher Fehler ist „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt.“ Dies tritt auf, wenn Sie versuchen, sich mit der login()-Methode bei Ihrem Gmail-Konto anzumelden.
Um dieses Problem zu beheben, ist eine Änderung an Ihrem Python-Skript erforderlich. Ersetzen Sie den Code, der versucht, die login()-Methode aufzurufen, durch Folgendes:
import smtplib 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")
Alternativ können Sie sich für die Verwendung von Port 465 entscheiden, indem Sie ein SMTP_SSL-Objekt implementieren:
# SMTP_SSL Example server_ssl = smtplib.SMTP_SSL("smtp.gmail.com", 465) server_ssl.ehlo() # optional, called by login() server_ssl.login(gmail_user, gmail_pwd) # ssl server doesn't support or need tls, so don't call server_ssl.starttls() server_ssl.sendmail(FROM, TO, message) #server_ssl.quit() server_ssl.close() print('successfully sent the mail')
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt' beim Senden von E-Mails mit Python und Gmail?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!