Python을 사용하여 Gmail로 이메일 보내기
Gmail을 통해 Python의 SMTP 라이브러리를 사용하여 이메일을 보내려고 하면 SMTP라는 오류가 발생할 수 있습니다. AUTH는 서버에서 지원되지 않습니다.
오류 설명:
TLS 암호화를 활성화하지 않고 login() 메소드를 사용하여 SMTP 서버에 인증하려고 하면 "서버에서 지원되지 않는 SMTP AUTH 확장" 오류가 발생합니다.
TLS를 사용한 해결 방법:
이 문제를 해결하려면 다음을 수행하여 TLS 암호화를 활성화하세요. 단계:
import smtplib # Enable TLS encryption server = smtplib.SMTP('smtp.gmail.com:587') server.starttls()
TLS가 활성화되면 login() 메소드를 사용하여 서버에 인증할 수 있습니다.
SSL과 함께 포트 465 사용:
또는 SSL 암호화와 함께 포트 465를 사용할 수도 있습니다. 이를 위해서는 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)
SSL 서버는 TLS 암호화를 지원하거나 요구하지 않으므로 server_ssl.starttls()를 호출하지 마십시오.
이메일 보내기를 위한 예제 스크립트:
다음은 향상된 Python 버전입니다. 질문에 제공된 스크립트:
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")
위 내용은 Gmail 및 Python으로 이메일을 보낼 때 '서버에서 지원되지 않는 SMTP AUTH 확장' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!