我遇到了一些非常尴尬的情况,也许我误解了这些通知的使用方法。
我已经设置了AWS SES在发送邮件后发布到一个主题。我已经将其设置为Bounce、Complaint和Delivery。
我的做法是,当我在Web服务器上收到SNS通知时,我会在我的数据库中查找那个消息ID,然后更改它的状态。例如,如果送达通知到达,我会将消息状态更改为“已送达”。如果反弹通知到达,我会将消息状态更改为“反弹”。
但现在我注意到,许多这些电子邮件都向我发送了两个通知,而且它们并不总是按照特定的顺序。有时一个先来,有时则相反。
所以如果“反弹”先到达,然后是“已送达”,那么我在数据库中针对此消息的状态就变成了“已送达”,我认为这可能会产生误导。
第一个问题:我如何检查这些通知的顺序?
第二个问题:我觉得我误解了“Delivery”通知。我试着阅读AWS文档,但老实说,它们并不是最好的文档。有人能给我一个简单、清晰的解释吗?
第三个问题:我是否正确地处理了这些通知?还是有更好的方法?
感谢您的帮助。
谢谢!
--
供您参考,我附上了一个示例,其中包含一组2个通知。一个反弹,一个送达。
我已经设置了AWS SES在发送邮件后发布到一个主题。我已经将其设置为Bounce、Complaint和Delivery。
我的做法是,当我在Web服务器上收到SNS通知时,我会在我的数据库中查找那个消息ID,然后更改它的状态。例如,如果送达通知到达,我会将消息状态更改为“已送达”。如果反弹通知到达,我会将消息状态更改为“反弹”。
但现在我注意到,许多这些电子邮件都向我发送了两个通知,而且它们并不总是按照特定的顺序。有时一个先来,有时则相反。
所以如果“反弹”先到达,然后是“已送达”,那么我在数据库中针对此消息的状态就变成了“已送达”,我认为这可能会产生误导。
第一个问题:我如何检查这些通知的顺序?
第二个问题:我觉得我误解了“Delivery”通知。我试着阅读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": "<no-reply@bs.com.hk>",
"messageId": "xxxxx
"destination": [
"<ooto@simulator.amazonses.com>"
]
},
"delivery": {
"timestamp": "2015-07-05T19:30:41.101Z",
"processingTimeMillis": 660,
"recipients": [
"ooto@simulator.amazonses.com"
],
"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": "ooto@simulator.amazonses.com"
}
],
"timestamp": "2015-07-05T19:30:41.000Z",
"feedbackId": "xxxxx"
},
"mail": {
"timestamp": "2015-07-05T19:30:40.000Z",
"messageId": "xxxxx",
"destination": [
"<ooto@simulator.amazonses.com>"
],
"source": "<no-reply@bs.com.hk>"
}
},
"Timestamp": "2015-07-05T19:30:41.315Z",
"SignatureVersion": "1",
"Signature": "xxxxx",
"SigningCertURL": "xxxxx",
"UnsubscribeURL": "xxxxx"
}