如何在发送电子邮件时在Amazon SES中添加自定义标头或元数据..?

时间:2016-07-05 10:31:00

标签: aws-sdk amazon-sns amazon-ses

我想在通过Amazon SES发送电子邮件时添加一些自定义标头。我想通过Amazon SNS在退回通知时获取这些标头。那么如何在发送电子邮件时传递自定义邮件ID?

现在我正在尝试使用

SendEmailRequest().putCustomRequestHeader(String, String);

但是我没有在Amazon SNS Notification Bounce JSON中获得此标头。 想法?

2 个答案:

答案 0 :(得分:3)

两件事:

首先,您需要使用RawMessage添加自定义标头。您正在为SES API调用添加标头,而不是向消息本身添加标头。有关此主题,请参阅Amazon SES custom header List-Unsubscribe isn't working

其他第二个问题是,亚马逊SES最近添加了能够在收到的通知中查看由于退回,投诉或取消订阅响应而导致的自定义标题。您必须为任何域明确启用此功能。

您可以在blog announcement post from June 14, 2016

中详细了解它们
  

亚马逊SES团队很高兴地宣布在SES通过Amazon SNS提供的退回,投诉和投递通知中添加了原始电子邮件标题。

     

我们努力使您的电子邮件发送过程更加轻松,今天我们正朝着这个方向迈出新的一步。提高您对SES反馈的可见度一直是我们关注的重点。从今天开始,您在电子邮件发送请求中传递给SES的标头可以在您的SNS通知中提供。继续阅读以获取一些常见问题的答案。

     

如何启用此功能?

     

使用Amazon SES控制台或API配置身份(电子邮件地址或域)和通知类型(退回,投诉或投放)的通知设置。

     

例如,要使用SES控制台包含身份退回通知的原始标头,您需要转到身份的通知设置,然后选择退回通知配置旁边的包含原始标头:

     

SES Include Original Headers Settings

     

启用此功能后,通知将包含原始名称/值格式和JSON格式的标题,用于常用标题。

答案 1 :(得分:0)

可以使用标签:

new SendEmailRequest().withTags(new MessageTag().withName("environment").withValue(appService.getActiveProfile().toString()))

您在事件JSON中收到标签。

"tags": {
    "environment": [
        "qa"
    ],
    ...
}