Heim > Backend-Entwicklung > Python-Tutorial > Wie behebe ich den Fehler „SMTP AUTH-Erweiterung wird vom Server nicht unterstützt' beim Senden von E-Mails mit Gmail und Python?

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

Susan Sarandon
Freigeben: 2024-11-30 15:11:12
Original
670 Leute haben es durchsucht

How to Resolve

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()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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")
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage