AWS无服务器 应用程序开发—第七章 邮件服务 发布订阅(Amazon SES)

本文介绍了AWS的Amazon SES服务,用于发送和接收电子邮件,强调了验证发件人地址和域名的重要性。此外,还讨论了SES的沙盒环境及其限制。同时提到了Amazon SNS作为消息通知服务的功能,如发布/订阅模型和多协议支持。这两个服务为企业提供了高效可靠的通信解决方案。
摘要由CSDN通过智能技术生成

Amazon SES (Simple Email Service)

Amazon SES 是一个高可扩展性、灵活且经济高效的电子邮件发送和接收服务,旨在帮助开发人员和企业通过应用程序发送通知、事务型电子邮件和营销电子邮件。

主要功能:

  1. 发送邮件:支持批量发送电子邮件,适用于营销和大规模通知。
  2. 接收邮件:通过将接收到的电子邮件存储在 Amazon S3、调用 AWS Lambda 函数等方式处理。
  3. 高可靠性:依托 AWS 的基础设施,提供高可用性和可靠的邮件传输。
  4. 安全性:支持 DKIM(DomainKeys Identified Mail)、SPF(Sender Policy Framework)和 DMARC(Domain-based Message Authentication, Reporting & Conformance)来防止电子邮件欺诈。
  5. 监控和反馈:提供详细的发送统计数据和反馈,包括送达率、打开率、点击率、退订率等。

在使用 Amazon SES 发送电子邮件之前,您需要验证发件人地址或域名。

验证电子邮件地址:
  1. 登录到 AWS 管理控制台,并选择 Amazon SES 服务。
  2. 在左侧导航栏中,选择 “邮箱地址”。
  3. 点击 “验证新的邮箱地址”。
  4. 输入要验证的邮箱地址,然后点击 “验证此邮箱地址”。
  5. 前往输入的邮箱地址的收件箱,并查收 AWS 发来的验证邮件。点击邮件中的验证链接以完成验证。
验证域名
  1. 登录到 AWS 管理控制台,并选择 Amazon SES 服务。
  2. 在左侧导航栏中,选择 “域”。
  3. 点击 “验证新域”。
  4. 输入要验证的域名,然后选择 “生成验证记录”。
  5. AWS 会提供一组 DNS 记录(包括 TXT 记录和 CNAME 记录)。将这些记录添加到您的域名提供商的 DNS 配置中。
  6. 等待 DNS 记录生效,AWS 会自动检测并验证您的域名。这可能需要一段时间,具体取决于 DNS 记录的传播速度。
验证完成后

一旦邮箱地址或域名验证成功,您就可以使用该地址或域名通过 Amazon SES 发送电子邮件了。这样可以确保邮件的合法性,防止滥用和欺诈。

SES有一个"沙盒"环境,这是一种限制性环境,用于帮助新用户逐步建立可靠的发送信誉。

在SES的沙盒环境中,有以下限制:
  1. 发送限制: 在沙盒环境中,你只能发送给已经验证的收件人地址(也就是通过验证的收件人地址列表)。每日发送配额也受到限制,一般是每日200封邮件。
  2. 不支持所有功能: 沙盒环境不支持所有SES功能。例如,无法发送电子邮件到未验证的收件人地址,无法设置自定义反垃圾邮件规则等。
  3. 监控和限制: AWS会监控沙盒环境中的邮件活动,并对不良行为进行限制。如果触发了SES的限制条件,AWS可能会暂停你的发送权限,直到问题得到解决。

要从SES的沙盒环境中移出,你需要提交请求并申请解除限制。在申请解除限制之前,你需要确保你的邮件发送活动符合AWS的规定,并且你已经完成了一些必要的步骤,如设置DNS记录和验证收件人地址等。

申请解除SES沙盒环境的限制后,你将获得更高的发送配额,并且可以发送邮件到未验证的收件人地址。但是,为了保持良好的发送信誉,你仍然需要遵守SES的使用规则,并且建议你实施一些最佳实践,如避免发送垃圾邮件、处理退订请求等。
申请移出沙盒的时候,第一次都会自动的失败,需要重新提交申请的理由,人工申请核实后,才会解除限制,如果遇到无法移除,可以咨询我

使用lambda函数发送邮件的例子(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 是一项高度可扩展的消息通知服务,允许您从应用程序、微服务或其他分布式系统发送和接收消息。

主要功能:

  1. 发布/订阅模型:允许应用程序或用户订阅主题,发布者将消息发送到这些主题,订阅者将接收到消息。
  2. 多协议支持:支持多种传输协议,如 HTTP/HTTPS、Email、SMS、SQS 以及 AWS Lambda。
  3. 消息过滤:通过消息属性和筛选策略,实现针对性的消息传递。
  4. 高可用性:利用 AWS 的全球基础设施,确保消息传递的高可用性和可靠性。
  5. 可扩展性:支持高吞吐量和低延迟的消息传递,适用于各种规模的应用程序。

总结

Amazon SES 和 Amazon SNS 提供了可靠且可扩展的电子邮件和消息通知解决方案,适用于各种规模的企业和应用程序,帮助提高通信效率和系统可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunquantong

你的鼓励是我发布的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值