先决条件
我使用AWS SES发送带有事件发布的电子邮件以跟踪交付状态。
问题
我正在寻找一个事件来确保电子邮件成功发送给最终用户。
描述
根据 AWS 档案,此型别适用:
但是,即使在Hardbounces或Complaints的情况下,我总是会收到此事件。
例如,电子邮件状态流是:
- Sends -> Deliveries - 在成功交付的情况下
- 发送->交付->硬退回- 以防我提供无效的收件人
我不希望在Deliveries之后出现硬反弹。如果这种行为是正确的,那么我需要一些额外的事件来确保成功。在成功交付的情况下,预计会出现这样的情况:
- 发送->交付->成功
我知道还有其他“成功”事件,例如Opens、Clicks、Subscriptions,但它们需要最终用户采取额外的行动。
实施细节
我使用经过验证的身份作为电子邮件发件人。
配置集用于将状态事件重定向到SNS。
最后,SQS订阅此 SNS 以将所有事件集中在一个位置。
我尝试了几种发送电子邮件的方法:
- 使用AWS SES 开发工具包的 Java 代码
- 发送带有预定义和自定义收件人的模拟器
结果是一样的(如上所述)
uj5u.com热心网友回复:
我认为不可能有Success
状态,因为 AWS 无法保证收件人邮件服务器何时会回复Hard Bounce
. 您必须自己定义要等待多长时间,直到您认为交付成功。例如,如果 5 分钟后没有硬反弹,则表示成功。
如果您的用例用于分析,我将简单地捕获更多事件型别(例如同时记录交付和硬退回),然后将我的成功计为交付计数 - 硬退回计数。
如果您的用例用于事件驱动的作业负载,我们需要首先定义什么是Success
. 例如,如果我们在 5 分钟后定义Success
为否Hard Bounce
,我们可以配置一个 Lambda 函式在交付事件后 5 分钟触发。在函式中,检查是否发生了后续的 Bounce 事件。如果没有,则认为交付成功,然后您可以继续做您想做的事情。
uj5u.com热心网友回复:
这是我从 aws 支持获得的关于电子邮件传递状态的信息。
据此,您无法确定bounce
5 分钟内的或任何其他状态。
AWS 无法确认收件人邮件服务器是否能够在您收到时将邮件传递到收件人电子邮件地址250 OK
(确认 aws 已将邮件传递到收件人的邮件服务器)。
因此,您无法确定。
0 评论