Programing

Gmail 및 Python을 사용하여 메일을 보낼 때 SMTPAuthenticationError

lottogame 2020. 12. 8. 07:38
반응형

Gmail 및 Python을 사용하여 메일을 보낼 때 SMTPAuthenticationError


gmail을 사용하여 메일을 보내려고 할 때 Python 오류가 발생했습니다.이 유형의 질문은 이미이 사이트에 있지만 도움이되지 않습니다.

gmail_user = "me@gmail.com"
gmail_pwd = "password"
TO = 'friend@gmail.com'
SUBJECT = "Testing sending using gmail"
TEXT = "Testing sending mail using gmail servers"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pwd)
BODY = '\r\n'.join(['To: %s' % TO,
        'From: %s' % gmail_user,
        'Subject: %s' % SUBJECT,
        '', TEXT])

server.sendmail(gmail_user, [TO], BODY)
print ('email sent')

오류:

    server.login(gmail_user, gmail_pwd)
    File "/usr/lib/python3.4/smtplib.py", line 639, in login
   raise SMTPAuthenticationError(code, resp)
   smtplib.SMTPAuthenticationError: (534, b'5.7.14   
   <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtl1\n5.7.14       Li2yir27TqbRfvc02CzPqZoCqope_OQbulDzFqL-msIfsxObCTQ7TpWnbxIoAaQoPuL9ge\n5.7.14 BUgbiOqhTEPqJfb02d_L6rrdduHSxv26s_Ztg_JYYavkrqgs85IT1xZYwtbWIRE8OIvQKf\n5.7.14 xxtT7ENlZTS0Xyqnc1u4_MOrBVW8pgyNyeEgKKnKNyxce76JrsdnE1JgSQzr3pr47bL-kC\n5.7.14 XifnWXg> Please log in via your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 fl15sm17237099pdb.92 - gsmtp')    

코드가 올바른 것 같습니다. 브라우저를 통해 로그인하고 계정에 액세스 할 수있는 경우 다시 돌아와 코드를 다시 시도하십시오. 사용자 이름과 비밀번호를 올바르게 입력했는지 확인하십시오.

수정 : Google은 최신 보안 표준을 사용하지 않는 앱의 로그인 시도를 차단합니다 (지원 페이지 에 언급 됨 ). 그러나 아래 링크로 이동하여이 안전 기능을 켜거나 끌 수 있습니다.

이 링크로 이동하여 https://www.google.com/settings/security/lesssecureapps 켜기를 선택합니다.


코드는 정확 해 보이지만 비정상적인 위치에서 이메일을 보내려고 할 때 가끔 Google이 IP를 차단하므로 다음 링크에서 차단을 해제 할 수 있습니다.

https://support.google.com/accounts/answer/6009563 및 accounts.google.com/DisplayUnlockCaptcha에서 클릭했습니다.


방금 Python을 통해 Gmail로 이메일을 보냈습니다. smtplib.SMTP_SSL을 사용하여 연결해보십시오. 또한 Gmail 도메인 및 포트를 변경하려고 할 수 있습니다.

따라서 다음과 같은 기회를 얻을 수 있습니다.

server = smtplib.SMTP_SSL('smtp.googlemail.com', 465)
server.login(gmail_user, password)
server.sendmail(gmail_user, TO, BODY)

플러스로 이메일 내장 모듈을 확인할 수 있습니다. 이러한 방식으로 코드의 가독성을 높이고 이메일 헤더를 쉽게 처리 할 수 ​​있습니다.

참고 URL : https://stackoverflow.com/questions/26852128/smtpauthenticationerror-when-sending-mail-using-gmail-and-python

반응형