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?
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()
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)
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")
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!