2012-06-18 195 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; 

這個工作很適合我