通过smtplib和AWS Lambda验证Gmail身份验证失败

时间:2017-11-08 05:38:48

标签: python amazon-web-services lambda aws-lambda smtplib

我正在尝试编写AWS Lambda函数,该函数使用Python的smtplib定期发送电子邮件。此函数在AWS lambda之外工作,我已经验证了环境变量多次有效。

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 个答案:

答案 0 :(得分:0)

AWS提供名为SES的服务。

您可以通过可扩展的方式发送出站电子邮件。

如果您仍希望通过gmail发送电子邮件,请启用安全性较低的应用选项,详细讨论here