多个收件人的单个 SNS 通知
Single SNS notification for multiple recipients
我正在尝试了解 SNS 如何为多个收件人传输单个通知。 Amazon SES 文档状态:
For a given notification type, you might receive one Amazon SNS
notification for multiple recipients, or you might receive a single
Amazon SNS notification per recipient.
但没有举例
让我们以一个简短的送货通知为例:
{
"Message": {
"notificationType":"Delivery",
"mail":{
"timestamp":"2017-06-22T17:15:53.980Z",
"messageId":"123",
"destination":["john@example.com"],
},
"delivery":{
"timestamp":"2017-06-22T17:15:54.873Z",
"recipients":["john@example.com"],
},
},
"Type": "Notification"
}
亚马逊如何在单个通知中为多个收件人提供信息? JSON 对象的结构似乎特定于单个事件,并且似乎不适用于提供有关多个收件人的信息。例如,只有一个 "delivery" 和一个 "timestamp"。你怎么能向两个人报告送货情况?
退回邮件和投诉通知似乎也不适合为多个收件人提供信息。
The structure of the JSON object seems specific to a single event
没错。只有在 单个 事件中涉及多个收件人时才会发生这种情况。
在逻辑上多个收件人可以在一个通知中(具有一个时间戳)的唯一方法是他们的邮箱由同一个邮件交换器 (MX) 处理。
对 SMTP 的有线协议的低层次理解会使这一点更加清楚。对于每个 SMTP 事务,SMTP 协议要求发送服务器首先识别发件人,然后是 一个或多个 收件人,然后传输邮件负载。当 SES 向电子邮件地址映射到同一 MX 的多个收件人发送单个消息时,它可能会选择通过在单个事务中指定多个收件人来避免完全相同数据的冗余传输……在这种情况下,多个收件人将都同时收到了消息
反弹也是如此。如果两个收件人都被目标服务器拒绝,则会同时发生退回事件。
诉求不同,但思路相同。如果目标系统推迟单个用户的投诉并将它们一起推回 SES,则应该是多个收件人的可能情况。这个好像不太可能。
但是,如果您向一个 gmail 地址和一个 hotmail 地址发送一封邮件,这将永远不会发生,因为这些目的地没有共同的基础设施。
数据结构当然可以容纳多个收件人,destination
和 recipients
都是数组。
我正在尝试了解 SNS 如何为多个收件人传输单个通知。 Amazon SES 文档状态:
For a given notification type, you might receive one Amazon SNS notification for multiple recipients, or you might receive a single Amazon SNS notification per recipient.
但没有举例
让我们以一个简短的送货通知为例:
{
"Message": {
"notificationType":"Delivery",
"mail":{
"timestamp":"2017-06-22T17:15:53.980Z",
"messageId":"123",
"destination":["john@example.com"],
},
"delivery":{
"timestamp":"2017-06-22T17:15:54.873Z",
"recipients":["john@example.com"],
},
},
"Type": "Notification"
}
亚马逊如何在单个通知中为多个收件人提供信息? JSON 对象的结构似乎特定于单个事件,并且似乎不适用于提供有关多个收件人的信息。例如,只有一个 "delivery" 和一个 "timestamp"。你怎么能向两个人报告送货情况?
退回邮件和投诉通知似乎也不适合为多个收件人提供信息。
The structure of the JSON object seems specific to a single event
没错。只有在 单个 事件中涉及多个收件人时才会发生这种情况。
在逻辑上多个收件人可以在一个通知中(具有一个时间戳)的唯一方法是他们的邮箱由同一个邮件交换器 (MX) 处理。
对 SMTP 的有线协议的低层次理解会使这一点更加清楚。对于每个 SMTP 事务,SMTP 协议要求发送服务器首先识别发件人,然后是 一个或多个 收件人,然后传输邮件负载。当 SES 向电子邮件地址映射到同一 MX 的多个收件人发送单个消息时,它可能会选择通过在单个事务中指定多个收件人来避免完全相同数据的冗余传输……在这种情况下,多个收件人将都同时收到了消息
反弹也是如此。如果两个收件人都被目标服务器拒绝,则会同时发生退回事件。
诉求不同,但思路相同。如果目标系统推迟单个用户的投诉并将它们一起推回 SES,则应该是多个收件人的可能情况。这个好像不太可能。
但是,如果您向一个 gmail 地址和一个 hotmail 地址发送一封邮件,这将永远不会发生,因为这些目的地没有共同的基础设施。
数据结构当然可以容纳多个收件人,destination
和 recipients
都是数组。