Ссылка ответа AWS SNS на JavaMail - PullRequest
0 голосов
/ 14 июня 2019

Я отправил свою почту по почте java и зарегистрировал свою электронную почту на Amazon для получения уведомлений об ответах (Bounce, Delivered) и т. Д.

Как мне успешно сопоставить эти два сообщения, чтобы сказать, когда я отправил письмоотправленное мною письмо имеет следующий входящий ответ.

Примечание. Все настроено (Webhooks для получения ответа от AWS SNS)

Я попытался сопоставить его по messageId, но, похоже, awsдобавляет другой messsageId, чем почтовый java.Пример

MimeMessage msg = new MimeMessage(session);
msg.getMessageID(); // returns "<1619401941.3.1560500581268@Tinus-NB>"

А из ответа AWS SNS

"MessageId" : "7cd42bc4-e5c2-576b-a567-7eb9baa51cad" // directly
"Message" : "{\"notificationType\":\"Delivery\",\"mail\":{\"timestamp\":\"2019-06-14T08:38:55.113Z\",\"messageId\":\"0102016b5523c189-55acd572-ba3f-4750-aaae-b7019080f1ae-000000\",\"delivery\":{\"timestamp\":\"2019-06-14T08:39:03.043Z\",\"processingTimeMillis\":7930,\"smtpResponse\":\"250 2.0.0 OK  1560501543 f15si1572805ede.113 - gsmtp\"}}" // this is in the Message object in the JSON

Просто чтобы прояснить, я хочу сопоставить эти два, узнать, что я отправил и каков был ответ.

Я использую Java Mail, а не AWS SDK lib

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Нашел, мне просто нужно было включить оригинальные заголовки

enter image description here

0 голосов
/ 14 июня 2019

SES перезаписывает MessageID независимо от того, что вы установили, потому что ему также необходимо знать, какое это письмо. В вашем случае при отправке электронных писем из Javamail в последнем разделе вашего кода вы можете распечатать код ответа 250 + идентификатор сообщения от SES и сопоставить его с идентификатором сообщения, полученным от SNS. Когда SES принимает электронное письмо в диалоге SMTP, оно дает 250 ok + идентификатор сообщения, и тот же идентификатор сообщения можно увидеть в уведомлении SNS.

...