2012-06-18 152 views
3

这可能是一个简单的问题,但我已经搜索并搜索并找不到答案。记录亚马逊SES消息ID

我想记录发送的每封电子邮件的消息ID,以便我可以更准确地执行反弹处理。

我正在使用AWS PHP SDK发送我的电子邮件。我发送电子邮件后如何获取消息ID?

+0

我认为这是不可能的,但你可以手动设置消息的ID和存储之前发送 – Sergey

+1

找到了答案...... 我能够从SES发送电子邮件时获得的响应对象中检索MessageID。 $response->body->SendEmailResult->MessageId

+0

如果您认为自己的答案在这里是最好的答案,请检查它。 –

回答

4

找到了答案......

我能够检索响应对象,我得到在与SES发送电子邮件邮件ID。

$response->body->SendEmailResult->MessageId

1

亚马逊SES变化的MessageID,请参阅第一条评论

+2

AWS在发送时更改消息标识。 以下头可以/将被修改: 邮件ID 日期 返回路径 跳动到 目前亚马逊SES将邮件ID,以便能够像反弹相关的反馈发送的电子邮件和投诉。使用Message-Id标头可确保Amazon SES能够识别原始发送请求,从而确保Amazon SES能够将您标识为原始发件人并将反弹转发给您。 我想我可以添加我自己的Message-Id,AWS会转发这个消息,但是AWS已经完成了这个消息,这看起来很浪费。 –

+0

@MattClements设置自己的自定义标题,如:MyHeaderId:,我设置自己的标题以检测退回的消息。 – Sergey

+0

@MattClements我有一个大规模电子邮件发送项目,并将在下周使用亚马逊。如果U找到解决方案,请更新Ur post – Sergey

1

你可以从亚马逊的响应到一个变量,然后解析XML;

$res = $this->amazon_ses->send(); 
$xml = new SimpleXMLElement($res); 
$email_id = (string) $xml->SendEmailResult[0]->MessageId; 

这个工作很适合我