AWS SES 审计
Posted
技术标签:
【中文标题】AWS SES 审计【英文标题】:AWS SES auditing 【发布时间】:2020-05-26 15:20:59 【问题描述】:如果邮件发送成功与否,用户是否实际收到邮件,我需要维护数据库中的状态, 用于审计目的的电子邮件何时发送、电子邮件内容等。这个怎么做 ? AWS sdk 中有没有这方面的 API?
【问题讨论】:
【参考方案1】:它并不像打开它那么简单,但 AWS 确实提供了您需要的所有部件。这就是我目前的做法
-
打开 AWS 传送通知,这会将通知发送到 SNS 主题
让 SNS 主题将这些消息传递到 SQS 队列
让后台作业处理这些消息并将它们移动到 DynamoDB 数据库以进行永久存储。
关键部分是 #1,您如何处理 #2 和 #3 取决于您 - 如果我必须再做一次,我会使用 Lambda 为我接管 #3,而不是使用在专用 Ec2 实例。
您可以在此处找到有关送货通知的更多信息:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-sns-notifications.html#configure-feedback-notifications-console
还请记住,跟踪并不完美 - 没有电子邮件跟踪器是 - SES 使用一些与 mailchimp/constant contact 相同的技术来确定电子邮件是否被打开,但它远非万无一失。
【讨论】:
但是我如何接收 AWS SES 在主题中发布的响应? 在控制台中,您告诉 SES 要将响应发送到哪个 SNS 主题,然后您可以使用 SNS 控制这些消息的发送位置 - 即发送到 SQS 或您定义的某些 webhook。【参考方案2】:您可以将 Amazon SES 配置为在您收到退回邮件或投诉或发送电子邮件时通知 Amazon SNS 主题。 Amazon SNS 通知采用 javascript Object Notation (JSON) 格式,使您能够以编程方式处理它们。
按照步骤操作:
在 SNS 中创建主题
订阅主题以获取传递通知(通知是 以 JSON 格式推送到 AWS SNS 主题)。
通过以下方式之一订阅 SNS:
拉姆达 SQS HTTP/S 电子邮件 短信考虑到需要将JSON参数保存在db表中以供审计,您可以监听HTTP/S或SQS。
JSON 响应将包含有用的信息,如消息 ID、通知类型(如投诉、退回、递送等)。
【讨论】:
以上是关于AWS SES 审计的主要内容,如果未能解决你的问题,请参考以下文章
在 Amazon Redshift 日志上运行 AWS Glue 爬虫会创建大量表