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?

Wie behebt man den Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt' beim Senden von E-Mails mit Python und Gmail?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-03 17:15:121032Durchsuche

How to Solve the

E-Mails mit Gmail über Python senden

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn