从S3上的电子邮件中获取BCC收件人的方法(收到SES电子邮件)

时间:2017-07-12 06:37:22

标签: amazon-ses

我正在使用SES inbound将原始消息存储在S3中。电子邮件进入存储桶然后我有一个脚本来解析存储桶中的每个电子邮件并提取所有电子邮件收件人

问题在于,有时,对于所有收件人都在BCC中的电子邮件,无法知道谁是收件人,原始电子邮件中的值没有标头。似乎没有办法获得BCC收件人。

我怎么知道邮件最初的真实地址是哪个?也许有一种方法可以向收件人添加自定义标头或者使用某些SES API和X-SES-RECEIPT,我不知道。

2 个答案:

答案 0 :(得分:0)

对于任何有同样问题的人,请直接来自AWS工程师:

为了接收有用的元数据,例如收到邮件的收件人(无需解析邮件头),我建议订阅SNS通知,查看通过S3操作收到的电子邮件。

'收件人'通知字段将包含您要查找的信息。有关内容的更多详细信息:http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html

有关S3操作的SNS主题属性的更多信息,请访问:http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-s3.html

答案 1 :(得分:0)

看起来有一个Received标头包含'... for email@foo.com;'其中的地址。但是,我把它看作'... for email@foo.com;'并作为'... for;'。所以解析出来有点棘手。

E.g。在这种情况下,收件人是:email.foo.com

Received: from mail-qt0-f876.google.com (mail-qt0-f876.google.com [209.85.216.176])
 by inbound-smtp.us-west-1.amazonaws.com with SMTP id 8t8gp7m0c81g6ddn1g8b7klev4cnlup039tuhlg1
 for test@email.foo.com;
 Thu, 12 Oct 2017 00:51:01 +0000 (UTC)

我也看到过(即使在同一条消息中):

Received: by mail-qt0-f876.google.com with SMTP id v41so999755qtv.12
    for <test@email.foo.com>; Wed, 11 Oct 2017 17:51:01 -0700 (PDT)