У меня действительно неловкая ситуация, возможно, я неправильно понимаю использование этих уведомлений.
Я настроил AWS SES для публикации в теме после отправки электронных писем. Я настроил его на публикацию для отказов, жалобы и доставки.
Что я делаю, это когда я получаю уведомление SNS на моем веб-сервере, я ищу этот идентификатор сообщения в своей базе данных, а затем изменяю его статус. Например, если приходит уведомление о доставке, я меняю статус сообщения на «Доставлено». Если приходит уведомление об отказе, я меняю статус сообщения на «Отказано».
Однако теперь я замечаю, что многие из этих писем отправляют мне оба уведомления, и они не всегда в определенном порядке. Иногда одно наступает раньше другого, а иногда наоборот.
Таким образом, если сначала приходит «Bounce», а затем «Delivered», мой статус в моей базе данных для этого сообщения становится «Delivered», что, по моему мнению, может вводить в заблуждение.
Первый вопрос Как проверить последовательность этих уведомлений?
Второй вопрос. Мне кажется, я неправильно понимаю уведомление "Доставка". Я пробовал читать документы AWS, но, честно говоря, они были не лучшими документами на Земле. Может ли кто-нибудь дать мне простое и ясное объяснение по этому поводу?
Третий вопрос. Правильно ли я вообще обрабатываю эти уведомления? Или есть способ лучше?
Ваша помощь очень ценится.
Спасибо!
--
К вашему сведению, я приложил образец, который состоит из набора из 2-х уведомлений. Один отскок и одна доставка.
{
"Type": "Notification",
"MessageId": "2efb9ee6-6bd5-576d-b80d-d0f5e3f44f23",
"TopicArn": "arn:aws:sns:us-east-1:#####:ses_beamstyle_com_hk",
"Message": {
"notificationType": "Delivery",
"mail": {
"timestamp": "2015-07-05T19:30:40.441Z",
"source": "<[email protected]>",
"messageId": "xxxxx
"destination": [
"<[email protected]>"
]
},
"delivery": {
"timestamp": "2015-07-05T19:30:41.101Z",
"processingTimeMillis": 660,
"recipients": [
"[email protected]"
],
"smtpResponse": "250 2.6.0 Message received",
"reportingMTA": "a9-140.smtp-out.amazonses.com"
}
},
"Timestamp": "2015-07-05T19:30:41.179Z",
"SignatureVersion": "1",
"Signature": "xxxxx",
"SigningCertURL": "xxxxx",
"UnsubscribeURL": "xxxxx"
}
{
"Type": "Notification",
"MessageId": "b6e8bb7d-4e73-52ae-b690-f56ec6527ce5",
"TopicArn": "arn:aws:sns:us-east-1:#####:ses_beamstyle_com_hk",
"Message": {
"notificationType": "Bounce",
"bounce": {
"bounceSubType": "General",
"bounceType": "Transient",
"bouncedRecipients": [
{
"emailAddress": "[email protected]"
}
],
"timestamp": "2015-07-05T19:30:41.000Z",
"feedbackId": "xxxxx"
},
"mail": {
"timestamp": "2015-07-05T19:30:40.000Z",
"messageId": "xxxxx",
"destination": [
"<[email protected]>"
],
"source": "<[email protected]>"
}
},
"Timestamp": "2015-07-05T19:30:41.315Z",
"SignatureVersion": "1",
"Signature": "xxxxx",
"SigningCertURL": "xxxxx",
"UnsubscribeURL": "xxxxx"
}