如何在AWS中管理电子邮件组?

问题描述 投票:0回答:1

我正在使用Lambda + SES将每日电子邮件发送到用户列表。我正在使用boto3 api client.list_verified_email_addresses()命令生成已验证电子邮件的列表。

但是,我需要向已验证电子邮件的子集发送另一封电子邮件。创建和维护此电子邮件组的最佳方法是什么?

我希望在AWS中维护该组并让Lambda代码引用AWS服务。我曾想过订阅用户到SNS主题并从主题获取列表,或者在S3中存储电子邮件列表。我应该注意哪些更好的解决方案或最佳实践?

amazon-web-services aws-lambda amazon-sns amazon-ses
1个回答
0
投票

最灵活的方法是创建一个RDS数据库,并以适合您的用例的方式为您的电子邮件组建模,然后从数据库中提取电子邮件。您也可以在紧要关头使用DynamoDB。

这种最小(关系)DB结构类似于:

Table: EmailRecipient
Columns:
    - emailAddress
    - name

Table: MailingList
Columns:
    - listId
    - listName

Table: MailingListEmailRecipient
Columns:
    - listId
    - emailAddress

'MailingListEmailRecipient'表用作邮件列表和收件人之间的多对多映射,您可以灵活地添加任意数量的列表,并且可以扩展表以包含其他相关信息,您可以添加用于跟踪发送的电子邮件爆炸等的表

如果你想使用DynamoDB,那也可以使用;它在数据建模方面有点限制,你可能会在以后遇到一些问题,但作为一个快速而肮脏的解决方案,它可以工作,如果数据很小并且不经常访问,成本可能会大大降低。在DynamoDB上,您可以执行以下操作:

Table: EmailRecipient
Partition Key: mailingListName
Sort Key: emailAddress
Optional fields:
    - recipientName

这将允许您将邮件列表的收件人存储在邮件列表分区键下。你也可以反过来做(电子邮件地址作为分区键),这对于DynamoDB来说是更优化的(避免'热'分区),但是如果你正在使用DynamoDB那么你可能正在构建一些快速而又脏的东西(无论如何,更好的方法是RDBMS)。

© www.soinside.com 2019 - 2024. All rights reserved.