amazon-web-services - 使用 Python 的 AWS Lambda SES SMTPLib 电子邮件超时
问题描述
我的 lambda 环境设置在us-east-2
但我知道 SES 仅存在于us-east-1
. 这是代码:
sent_from = "email1@gmail.com"
send_to = "email2@gmail.com"
aws_user_name = "<USER NAME KEY>"
#stub - replace this
aws_password = "<USER PASSWORD KEY>"
logger.info("send_emails: start")
for email in email_list:
try:
logger.info("send_emails: step 1: smtp")
server = smtplib.SMTP()
logger.info("send_emails: step 2: smtp")
server.connect('email-smtp.us-east-1.amazonaws.com', 587)
#server.ehlo()
logger.info("send_emails: step 3: smtp")
server.starttls()
logger.info("send_emails: step 4: smtp")
#logger.info("User: " + aws_user_user + " Password:" + aws_password)
server.login(aws_user_name, aws_password)
logger.info("Email Send To: " + email[1])
logger.info("Test Point: send_emails: A")
#server.sendmail(sent_from, email[1], email_body.as_string())
#REPLACE THIS LINE. THIS IS JUST FOR TESTING.
server.sendmail(sent_from, send_to, email_body.as_string())
server.close()
insert_into_email_sent_tbl(email[0], "Success")
logger.info('Email sent!')
return True
except Exception as e:
logger.info(e)
logger.info('Something went wrong...')
insert_into_email_sent_tbl(email[0], "Fail")
return False
它在这里超时,有 10 秒超时。它总是停在这行代码: logger.info("send_emails: step 3: smtp")
这意味着它停在这里server.connect('email-smtp.us-east-1.amazonaws.com', 587)
。
我已在 SES AWS 控制台中授予对这两个电子邮件地址的访问权限。
我是否必须将功能移动到us-east-1
. 请记住,我的 RDS 实例位于us-east-2
.
编辑
这些是我的出站安全组规则:
我的入站规则如下:
来源是我的工作和家用机器。
解决方案
解决方案是将主机名也添加smtplib.SMTP()
到
print("send_emails: step 1: smtp")
print("send_emails: step 1: smtp")
server = smtplib.SMTP('email-smtp.us-east-1.amazonaws.com')
print("send_emails: step 2: smtp")
server.connect('email-smtp.us-east-1.amazonaws.com', 587)
#server.ehlo()
print("send_emails: step 3: smtp")
server.starttls()
看起来像一个 python错误
推荐阅读
- excel - 循环文件,临时文件干扰
- networking - 与 Kubernetes 的基于路径的粘性会话
- sharepoint - 远程添加 Sharepoint 用户 PowerShell 脚本
- reactjs - serve -s build 给出无法打开显示的错误:(null):设备的 ioctl 不合适
- html - 显示列表的唯一第一项
- c++ - 解决 SDL2 错误“SDL2.h:没有这样的文件或目录”
- sql - 如何添加新行但保持现有数据不变?
- java - 为什么我的第一个数组列表被更改以匹配我的第二个数组列表
- prolog - What makes a DCG predicate expensive?
- c++ - Cmake 不能包含来自 main 的 boost 库