由于 smtp 在 Lambda (python) 中发送电子邮件时出错

向大师学习

我在 lambda 中有以下代码:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

def lambda_handler(event, context):
    msg_email = MIMEMultipart('alternative')
    msg_email.attach(MIMEText("mymessage", 'plain'))
    msg_email['Subject'] = subject
    msg_email['From'] = "[email protected]"
    msg_email['To'] = "[email protected]"
    try:
        print("AAAA")
        with smtplib.SMTP('email-smtp.eu-west-1.amazonaws.com', 587) as smtp_server:
            print("BBBB")
            smtp_server.ehlo()
            smtp_server.starttls()
            smtp_server.ehlo()
            smtp_server.login('myid', 'mypass')
            smtp_server.sendmail("[email protected]", "[email protected]", msg_email.as_string())
    except Exception:
        print("Couldn't send message.")
        raise
    else:
        print("Email sent!")

此代码打印“AAAA”,但在打印“BBBB”之前,执行 lambda 时出现错误:任务在 3.01 秒后超时。但是,如果我在我的 EC2 实例中运行它可以正常工作。为什么 lambda 不能执行它?

编辑: lambda 的角色具有以下权限:AWSLambdaBasicExecutionRole(后面带有一些 uiid)、pinpoint-email-ers-、AmazonSESFullAccess、AmazonWorkMailFullAccess、AmazonWorkMailMessageFlowFullAccess

马尔钦

如果您将VPC 中的 Lambda 放在公共子网中,则它没有 Internet 连接。它必须放置在一个私有子网中,该子网有一个路由表,其中的路由指向一个NAT 网关NAT 将放置在公共子网中。

AWS Docs 中描述了详细信息:

或者,如果您不需要,请不要将您的 lambda 放在 VPC 中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中使用smtp类发送自动电子邮件

无法使用Gmail SMTP在Spring Boot中发送电子邮件

尝试在RoR应用程序中发送电子邮件时遇到SMTP错误

通过Office365 smtp使用nodemailer发送电子邮件时出错(MEANjs支架)

通过SMTP Python发送电子邮件时遇到麻烦

Laravel发送电子邮件SMTP

使用html正文从Gmail帐户使用SMTP python发送电子邮件

在Python中通过smtp.gmail.com在GAE上发送电子邮件

如何通过自己的smtp在firebase https函数中发送电子邮件

从Protonmail帐户,SMTP库使用Python发送电子邮件

Python:通过SMTP发送html格式的电子邮件

使用gmail SMTP从辅助地址发送电子邮件

使用SMTP在Gmail帐户中发送电子邮件

使用本地Python SMTP服务器从Python发送电子邮件

通过Zoho SMTP发送电子邮件

由于传递错误而无法发送电子邮件

当我尝试在Android中使用Mandrill SMTP发送电子邮件时出错

在使用Gmail SMTP的PHP中发送电子邮件方面需要帮助

Python错误:(2,“没有这样的文件或目录”)在python中发送电子邮件文件时

通过Python和Google SMTP服务器发送电子邮件

SMTP 不在 Gmail 企业帐户中发送电子邮件

发送电子邮件包括 主题字段,使用 Python SMTP

如何使用 SMTP 在 ionic 3 中发送电子邮件?

在python中发送谷歌日历事件时发送电子邮件通知

尝试在 python 3.8.3 中使用 smtplib 发送电子邮件时出错

无法使用 httpclientlibrary 在 lambda 函数中发送电子邮件

Python:尝试删除为发送电子邮件附件而生成的文件时出错

有没有一种快速的方法可以在不事先知道文件类型的情况下使用 SMTP 在 python 中发送电子邮件附件?

GCP (Google Cloud) VM - 无法使用 SMTP 通过 Python 脚本发送电子邮件