>백엔드 개발 >파이썬 튜토리얼 >Gmail 및 Python으로 이메일을 보낼 때 '서버에서 지원되지 않는 SMTP AUTH 확장' 오류를 해결하는 방법은 무엇입니까?

Gmail 및 Python으로 이메일을 보낼 때 '서버에서 지원되지 않는 SMTP AUTH 확장' 오류를 해결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-30 15:11:12665검색

How to Resolve

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.