Amazon SES 向电子邮件列表中的收件人发送重复的电子邮件

问题描述

我已经编写了一个成功的 Lambda 函数......

  • 当收到的电子邮件到达 s3 存储桶时触发
  • Strips 表示它的 csv 附件的传入电子邮件
  • 将原始 csv 保存到 s3 存储桶中的文件
  • 对 csv 文件执行一些处理
  • 将处理后的文件作为 csv 和 .xlsx 文件保存到 s3 存储桶中的另一个文件
  • 向收件人列表发送电子邮件,并附上已处理的 .xlsx 文件。在我调试时,电子邮件列表被限制为 3 个电子邮件地址。该列表名为 customer_emails

我面临的问题是收件人收到重复的电子邮件。以前收到了 4 封电子邮件,但是自从将 Lambda 超时修改为 1'25" 后,我已将其减少到每个收件人 2 封电子邮件

我无法确定这是由多次调用 Lambda 函数引起的,还是 SES 调用本身存在问题。

查看 Cloudwatch 日志中的“发送”指标表明每次给定调用仅发送 3 封电子邮件,这是预期的。请看截图。

enter image description here

代码摘录:

ses_client = boto3.client(
    'ses',region_name='eu-west-1',aws_access_key_id=[REDACTED],aws_secret_access_key=[REDACTED]
    )
    
    message = MIMEMultipart()
    message['Subject'] = 'Email for ' + str(today.strftime("%B %d,%Y"))
    message['From'] = [REDACTED]
    #message['Bcc'] = ','.join(customer_emails)
    
    # MESSAGE BODY
    part = MIMEText('Here is today's email! Enjoy!','html')
    message.attach(part)
    # ATTACHEMENT
    #if attachment_string:   # if bytestring available
    #   part = MIMEApplication(str.encode('attachment_string'))
    #else:    # if file provided
    part = MIMEApplication(open('/tmp/filename{}.xlsx'.format(d2),'rb').read())
    part.add_header('Content-disposition','attachment',filename='filename{}.xlsx'.format(d2))
    message.attach(part)
    response = ses_client.send_raw_email(
    Source=message['From'],Destinations=customer_emails,RawMessage={
        'Data': message.as_string()
        }
    )

如果有帮助,收到的电子邮件具有不同的消息 ID。例如:

<01020178e56d2519-f6373855-6099-4abb-bbea-76c8d3c662e8-000000@eu-west-1.amazonses.com>

<01020178e56c2977-122e40c3-16c3-4aaa-9e14-b551e81ceab2-000000@eu-west-1.amazonses.com>

任何指导都会有所帮助

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)