【发布时间】:2022-01-08 08:27:38
【问题描述】:
我们在 AWS Lambda 中循环 160 个电子邮件地址,并调用 SES 的 send_raw_email() API 调用,每次调用一个地址。 50 次循环后,我们得到错误“收件人计数超过 50”。但每次通话只有一个收件人。电子邮件中的其他信息,除了“收件人:”,在通话之间是相同的。我们这样做是为了防止收件人看到其他收件人的地址。
电子邮件是否在 SES 进行批量处理? (我们是如何达到这个极限的?)
我们怎样才能克服这个错误?
添加代码:
for item in recipients['Items']:
RECIPIENT = item['email']['S']
msg['To'] = RECIPIENT
try:
#Provide the contents of the email.
response = ses.send_raw_email(
Source=SENDER,
Destinations=[
RECIPIENT
],
RawMessage={
'Data':msg.as_string(),
}
)
# Display an error if something goes wrong.
except ClientError as e:
print("failed to send email: ",e.response['Error']['Message'])
return {
'statusCode': 400,
'body': json.dumps(e.response['Error']['Message'])
}
else:
print("Email sent! Message ID:"),
print(response['MessageId'])
【问题讨论】:
-
您是否尝试过将批量收件人指定为密件抄送?
-
通过准确记录发送的内容来检查您发送给 SES 的内容。也许 TO 字段被附加,而不是被替换?你能给我们看一些简化的代码吗?
-
添加了代码 sn-p
-
快速测试显示 TO 行上的列表不断增长。不错的电话。现在如何清除邮件的 TO 列表?
-
你的缩进是否正确?它正在循环处理所有收件人,然后只调用一次
send_raw_email()。这不会导致这个特定问题,但它看起来是错误的。
标签: amazon-web-services email amazon-ses