Amazon SES (Simple Email Service)
Amazon SES 是一个高可扩展性、灵活且经济高效的电子邮件发送和接收服务,旨在帮助开发人员和企业通过应用程序发送通知、事务型电子邮件和营销电子邮件。
主要功能:
- 发送邮件:支持批量发送电子邮件,适用于营销和大规模通知。
- 接收邮件:通过将接收到的电子邮件存储在 Amazon S3、调用 AWS Lambda 函数等方式处理。
- 高可靠性:依托 AWS 的基础设施,提供高可用性和可靠的邮件传输。
- 安全性:支持 DKIM(DomainKeys Identified Mail)、SPF(Sender Policy Framework)和 DMARC(Domain-based Message Authentication, Reporting & Conformance)来防止电子邮件欺诈。
- 监控和反馈:提供详细的发送统计数据和反馈,包括送达率、打开率、点击率、退订率等。
在使用 Amazon SES 发送电子邮件之前,您需要验证发件人地址或域名。
验证电子邮件地址:
- 登录到 AWS 管理控制台,并选择 Amazon SES 服务。
- 在左侧导航栏中,选择 "邮箱地址"。
- 点击 "验证新的邮箱地址"。
- 输入要验证的邮箱地址,然后点击 "验证此邮箱地址"。
- 前往输入的邮箱地址的收件箱,并查收 AWS 发来的验证邮件。点击邮件中的验证链接以完成验证。
验证域名
- 登录到 AWS 管理控制台,并选择 Amazon SES 服务。
- 在左侧导航栏中,选择 "域"。
- 点击 "验证新域"。
- 输入要验证的域名,然后选择 "生成验证记录"。
- AWS 会提供一组 DNS 记录(包括 TXT 记录和 CNAME 记录)。将这些记录添加到您的域名提供商的 DNS 配置中。
- 等待 DNS 记录生效,AWS 会自动检测并验证您的域名。这可能需要一段时间,具体取决于 DNS 记录的传播速度。
验证完成后
一旦邮箱地址或域名验证成功,您就可以使用该地址或域名通过 Amazon SES 发送电子邮件了。这样可以确保邮件的合法性,防止滥用和欺诈。
SES有一个"沙盒"环境,这是一种限制性环境,用于帮助新用户逐步建立可靠的发送信誉。
在SES的沙盒环境中,有以下限制:
- 发送限制: 在沙盒环境中,你只能发送给已经验证的收件人地址(也就是通过验证的收件人地址列表)。每日发送配额也受到限制,一般是每日200封邮件。
- 不支持所有功能: 沙盒环境不支持所有SES功能。例如,无法发送电子邮件到未验证的收件人地址,无法设置自定义反垃圾邮件规则等。
- 监控和限制: AWS会监控沙盒环境中的邮件活动,并对不良行为进行限制。如果触发了SES的限制条件,AWS可能会暂停你的发送权限,直到问题得到解决。
要从SES的沙盒环境中移出,你需要提交请求并申请解除限制。在申请解除限制之前,你需要确保你的邮件发送活动符合AWS的规定,并且你已经完成了一些必要的步骤,如设置DNS记录和验证收件人地址等。
申请解除SES沙盒环境的限制后,你将获得更高的发送配额,并且可以发送邮件到未验证的收件人地址。但是,为了保持良好的发送信誉,你仍然需要遵守SES的使用规则,并且建议你实施一些最佳实践,如避免发送垃圾邮件、处理退订请求等。
申请移出沙盒的时候,第一次都会自动的失败,需要重新提交申请的理由,人工申请核实后,才会解除限制,如果遇到无法移除,可以咨询我
使用lambda函数发送邮件的例子(python)
python
import boto3
ses_client = boto3.client('ses')
try:
CcEmail = CC_EMAIL
if isinstance(CcEmail, str):
CcEmail = [CcEmail]
response = ses_client.send_email(
Source= SOURCE_EMAIL,
Destination={
'ToAddresses': ToEmailALL,
'CcAddresses':CcEmail,
'BccAddresses':[BCC_EMAIL]
},
Message={
'Subject': {
'Data': subject,
},
'Body': {
'Html': {
'Data': ''.join(emailHtml)
},
}
}
)
print("send Email success")
except Exception as e:
print("send Email Error", str(e))
raise e
Amazon SNS (Simple Notification Service)
Amazon SNS 是一项高度可扩展的消息通知服务,允许您从应用程序、微服务或其他分布式系统发送和接收消息。
主要功能:
- 发布/订阅模型:允许应用程序或用户订阅主题,发布者将消息发送到这些主题,订阅者将接收到消息。
- 多协议支持:支持多种传输协议,如 HTTP/HTTPS、Email、SMS、SQS 以及 AWS Lambda。
- 消息过滤:通过消息属性和筛选策略,实现针对性的消息传递。
- 高可用性:利用 AWS 的全球基础设施,确保消息传递的高可用性和可靠性。
- 可扩展性:支持高吞吐量和低延迟的消息传递,适用于各种规模的应用程序。
总结
Amazon SES 和 Amazon SNS 提供了可靠且可扩展的电子邮件和消息通知解决方案,适用于各种规模的企业和应用程序,帮助提高通信效率和系统可靠性。