Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyelesaikan 'sambungan SMTP AUTH tidak disokong oleh pelayan' Ralat Semasa Menghantar E-mel dengan Gmail dan Python?

Bagaimana untuk Menyelesaikan 'sambungan SMTP AUTH tidak disokong oleh pelayan' Ralat Semasa Menghantar E-mel dengan Gmail dan Python?

Susan Sarandon
Lepaskan: 2024-11-30 15:11:12
asal
766 orang telah melayarinya

How to Resolve

Menghantar E-mel dengan Gmail Menggunakan Python

Apabila cuba menghantar e-mel menggunakan perpustakaan SMTP Python melalui Gmail, anda mungkin menghadapi ralat yang menyatakan bahawa SMTP AUTH tidak disokong oleh pelayan.

Ralat Penerangan:

Ralat "sambungan SMTP AUTH tidak disokong oleh pelayan" berlaku apabila anda cuba untuk mengesahkan dengan pelayan SMTP menggunakan kaedah log masuk() tanpa mendayakan penyulitan TLS.

Penyelesaian Menggunakan TLS:

Untuk menyelesaikan isu ini, dayakan penyulitan TLS dengan mengikuti ini langkah:

import smtplib

# Enable TLS encryption
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
Salin selepas log masuk

Setelah TLS didayakan, anda boleh mengesahkan dengan pelayan menggunakan kaedah log masuk().

Menggunakan Port 465 dengan SSL:

Sebagai alternatif, anda boleh menggunakan Port 465 dengan penyulitan SSL. Untuk ini, anda perlu mencipta objek SMTP_SSL:

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)
Salin selepas log masuk

Perhatikan bahawa pelayan SSL tidak menyokong atau memerlukan penyulitan TLS, jadi jangan panggil server_ssl.starttls().

Contoh Skrip untuk Menghantar E-mel:

Berikut ialah versi Python yang dipertingkatkan skrip disediakan dalam soalan:

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")
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'sambungan SMTP AUTH tidak disokong oleh pelayan' Ralat Semasa Menghantar E-mel dengan Gmail dan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan