这可能是一个简单的问题,但我已经搜索并搜索并找不到答案。记录亚马逊SES消息ID
我想记录发送的每封电子邮件的消息ID,以便我可以更准确地执行反弹处理。
我正在使用AWS PHP SDK发送我的电子邮件。我发送电子邮件后如何获取消息ID?
这可能是一个简单的问题,但我已经搜索并搜索并找不到答案。记录亚马逊SES消息ID
我想记录发送的每封电子邮件的消息ID,以便我可以更准确地执行反弹处理。
我正在使用AWS PHP SDK发送我的电子邮件。我发送电子邮件后如何获取消息ID?
找到了答案......
我能够检索响应对象,我得到在与SES发送电子邮件邮件ID。
$response->body->SendEmailResult->MessageId
亚马逊SES变化的MessageID,请参阅第一条评论
AWS在发送时更改消息标识。 以下头可以/将被修改: 邮件ID 日期 返回路径 跳动到 目前亚马逊SES将邮件ID,以便能够像反弹相关的反馈发送的电子邮件和投诉。使用Message-Id标头可确保Amazon SES能够识别原始发送请求,从而确保Amazon SES能够将您标识为原始发件人并将反弹转发给您。 我想我可以添加我自己的Message-Id,AWS会转发这个消息,但是AWS已经完成了这个消息,这看起来很浪费。 –
@MattClements设置自己的自定义标题,如:MyHeaderId:
@MattClements我有一个大规模电子邮件发送项目,并将在下周使用亚马逊。如果U找到解决方案,请更新Ur post – Sergey
你可以从亚马逊的响应到一个变量,然后解析XML;
$res = $this->amazon_ses->send();
$xml = new SimpleXMLElement($res);
$email_id = (string) $xml->SendEmailResult[0]->MessageId;
这个工作很适合我
更新答案: sendEmail返回Guzzle\Service\Resource\Model。
你可以用得到的MessageId值$response->get('MessageId')
更多信息:http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-models.html
这是现在最好的答案,特别是SDK第3版 – acidjazz
我认为这是不可能的,但你可以手动设置消息的ID和存储之前发送 – Sergey
找到了答案...... 我能够从SES发送电子邮件时获得的响应对象中检索MessageID。
$response->body->SendEmailResult->MessageId
–如果您认为自己的答案在这里是最好的答案,请检查它。 –