我正在使用Lambda + SES向用户列表发送每日电子邮件。我正在使用boto3 api client.list_verified_email_addresses()命令生成经过验证的邮件列表。
但是,我需要将另一封电子邮件发送到已验证电子邮件的子集。创建和维护此电子邮件组的最佳方式是什么?
我更喜欢在AWS中维护组,并让Lambda代码引用AWS服务。我曾经想过让用户订阅一个社交网络主题,然后从该主题中获取列表,或者存储在S3中的电子邮件列表。有没有我应该知道的更好的解决方案或最佳实践?
发布于 2018-09-18 02:29:33
最灵活的方法是创建一个RDS数据库,并以任何适合您的用例的方式对您的电子邮件组进行建模,然后从DB中提取电子邮件。你也可以在必要的时候使用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这将允许您将邮件列表的收件人存储在邮件列表分区键下。你也可以反过来做(emailAddress作为分区键),这对于DynamoDB (避免‘热’分区)会更优,但是如果你使用DynamoDB来做这件事,那么你可能正在构建一些又快又脏的东西(更好的方法是关系型数据库)。
https://stackoverflow.com/questions/52372964
复制相似问题