2017-11-08 19 views
0

저는 정기적으로 Python의 smtplib을 사용하여 이메일을 전송하는 AWS Lambda 함수를 작성하려고합니다. 이 함수는 AWS 람다 외부에서 작동하며 환경 변수가 여러 번 유효하다는 것을 확인했습니다.smtplib 및 AWS Lambda를 통한 Gmail 인증에 실패했습니다

import os 
import smtplib 

def lambda_handler(event, context): 
    """Function that runs to send the email.""" 
    otf_email = os.environ.get("OTF_EMAIL") 
    my_email = os.environ.get("MY_EMAIL") 
    pw = os.environ.get("GMAIL_PW") 

    body = 'Subject:\nThis is a test from the AWS lambda function.' 
    smtp_obj = smtplib.SMTP('smtp.gmail.com', 587) 
    smtp_obj.ehlo() 
    smtp_obj.starttls() 
    smtp_obj.login(my_email, pw) 
    smtp_obj.sendmail(my_email, otf_email, body) 
    smtp_obj.sendmail(my_email, my_email, body) 
    smtp_obj.quit() 

오류의 첫 번째 부분 :

"errorMessage": "(534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsR\\n5.7.14 vlSLqK014L_ddv0GicpBkQ1o229bk_zYZe8gMUGlddfJLox0EnXFwtUl9GpBygMxCzoATW\\n5.7.14 3UjdqLIvkTcUx6vGO09gE33_CMkdMaVK-F1d8FC4SypPh8n3ft6BaZubjr4b_M7FD2roiN\\n5.7.14 LyTNxCogmPGDqNQP8overGbbDNTZ7rdeEGBYqG9dExVjtqnRda6eEwC9e9Ib8zHfsjASRM\\n5.7.14 Zi8ShH9zxelYTJ-IhALwvPFV0pJIg> Please log in via your web browser and\\n5.7.14 then try again.\\n5.7.14 Learn more at\\n5.7.14 https://support.google.com/mail/answer/78754 u131sm4947518pgc.89 - gsmtp')" 
+1

Gmail 설정에서 덜 안전한 앱에 액세스 할 수 있어야한다고 생각합니다. –

+1

귀하의 경우, 아마존 SES를 사용하여 이메일을 보내는 것이 좋습니다. 람다와 쉽게 통합 할 수 있습니다. –

+0

Gmail에서 안전성이 낮은 앱에 액세스 할 수있게되었습니다. 나는 그렇게 말 했어야했다. 나는 SES를 조사 할 것이다. –

답변

0

AWS는 서비스가 SES라고합니다.

확장 가능 방식으로 아웃 바운드 이메일을 보낼 수 있습니다.

here에서 논의 된 덜 안전한 앱을 사용하는 gmail을 통해 이메일을 보내려는 경우.

+0

덜 안전한 앱을 사용하도록 설정했지만 SES를 사용해 보겠습니다. 감사! –