什么是Amazon Simple Email Service(SES 群发邮件)

Amazon Simple Email Service(Amazon SES)让您可以使用 Amazon SES API 或 SMTP 接口放心地联络到客户,而无需使用本地简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)电子邮件服务器。

在这里插入图片描述

目录

  • 什么是SES
  • 为什么使用 SES
  • 解决难点
  • 应用场景
  • 工作原理
  • Amazon SES 现在支持的功能
    • 邮件发送人配置选项
    • 提高收件箱送达率
    • 灵活的部署选项
    • 发件人身份管理和安全性
    • 发送统计信息
    • 声誉控制面板
    • 电子邮件接收
    • 邮箱模拟器
  • 代码示例-使用 AWS 开发工具包通过 Amazon SES 发送电子邮件
  • 限时-SES 提供灵活的免费套餐
  • 附录

什么是SES

Amazon Simple Email Service(又称 SES 群发邮件)是一个电子邮件平台,为您提供一种简单、经济高效的方式,让您使用自己的电子邮件地址和域发送和接收电子邮件。

例如,您可以发送营销电子邮件(例如特别优惠)、交易电子邮件(例如订单确认)以及其他类型的通信(例如新闻通讯)。当您使用 Amazon SES 接收邮件时,您可以开发软件解决方案,例如电子邮件自动回复器、电子邮件取消订阅系统以及从传入电子邮件生成客户支持票证的应用程序。


为什么使用 SES

Amazon SES 是一家基于云的电子邮件服务提供商,可以集成到任何应用程序中,以实现大批量电子邮件自动化。无论您是使用电子邮件软件发送交易电子邮件、营销电子邮件还是时事通讯电子邮件,都只需按实际用量付费。Amazon SES 是一款电子邮件工具,还支持包括专用、共享或自有 IP 地址的部署。关于发件人统计数据的报告和电子邮件送达率工具可帮助企业确保每封电子邮件都有效送达。


解决难点

  • 对于企业来说,构建大规模电子邮件解决方案通常是一项复杂且成本高昂的挑战。您必须应对基础设施挑战,例如:
    • 电子邮件服务器管理
    • 网络配置
    • IP 地址部署认证等。
  • 第三方电子邮件解决方案需要:
    • 合同和价格谈判
    • 大量的前期成本。
  • Amazon SES 消除了这些挑战,并使您能够受益于 Amazon.com 服务其自身的大规模客户群而构建的多年经验和先进的电子邮件基础设施

应用场景

  • 自动发送事务型邮件:通过自动发送电子邮件(如购买或发货通知、订单状态更新和策略变更通知)来使您的客户随时掌握最新信息。
  • 在全球范围内传送营销电子邮件:通过新闻通讯、特别优惠和吸引受众的内容,向全球各地的客户介绍产品和服务。
  • 及时向客户发送通知:及时向客户发送有关其与您的产品和服务之间交互的通知,包括每日提醒、每周使用报告和新闻通讯。
  • 批量发送电子邮件通信:向大型团体传送消息(包括通知和公告),并使用配置集跟踪结果。

工作原理

下面介绍以使用 SES 发送电子邮件时的工作原理为例:
在这里插入图片描述

  1. 电子邮件发件人的客户端应用程序向 SES 发出请求,将电子邮件发送给一个或多个收件人。
  2. 如果请求有效,SES 会接受该电子邮件。
  3. SES 通过互联网将消息发送至收件人的接收者。一旦消息传递到 SES,通常会立即发送,第一次传递尝试通常会在几毫秒内发生。
  4. 此时,就有不同的可能性。例如:
    a. ISP 成功地将邮件传送到收件人的收件箱。
    b. 收件人的电子邮件地址不存在,因此 ISP 向 SES 发送退回通知。然后,SES 将通知转发给发件人。
    c. 收件人收到该邮件,但认为它是垃圾邮件并向 ISP 进行投诉。ISP 与 SES 建立了反馈循环,将投诉发送给 SES,然后 SES 将其转发给发件人。

Amazon SES 现在支持的功能

邮件发送人配置选项

Amazon SES 提供了多种发送电子邮件的方式,包括 Amazon SES 控制台、简单邮件传输协议(SMTP)接口和 Amazon SES API。

提高收件箱送达率

送达率:确保电子邮件到达收件箱而不是垃圾邮件,是成功的电子邮件策略的核心要素。

SES 提供对发件人电子邮件性能的洞察,就如何提高送达率提出建议,甚至可以自动为发件人实施电子邮件送达率改进。SES 具有三个核心可交付性组件:数据分析、建议更改和自动实施

  • 分析电子邮件送达率
    SES 的送达率数据分析可以帮助电子邮件发件人了解他们的送达率。 在 SES 控制台的单个界面中查看有关发送和送达数据的概览报告,例如跳出率、打开次数和点击次数。您可以按照 ISP、发件人身份和配置集查看这些指标的明细,以及您发送的每封电子邮件的送达和互动情况。

  • 查看电子邮件送达率建议
    SES 可以通知发件人电子邮件送达率问题并提供可操作的建议以帮助提高收件箱送达率,例如审查 SPF、DKIM 和 DMARC 等电子邮件身份验证配置。如果识别出电子邮件声誉降级或改进机会,发件人将持续可见。

  • 自动提高电子邮件送达率
    发件人可以选择允许 SES 自动实施电子邮件送达率建议,例如优化电子邮件送达模式。一旦 SES 检测到改进的机会,系统将实施更改,而无需监控或手动调整。

灵活的部署选项

  • 共享 IP 地址
  • 专用 IP 地址
  • 自带 IP 地址

发件人身份管理和安全性

Amazon SES 支持所有行业标准的身份验证机制,包括域名密钥识别邮件 (DKIM)、发件人策略框架 (SPF)、基于域的邮件身份验证、报告和一致性 (DMARC)。

发送统计信息

Amazon SES 提供了数种用于监控电子邮件发送活动的方式,帮助调整电子邮件发送策略。Amazon SES 可以捕获有关整个电子邮件回复管道的信息,包括发送和送达的电子邮件数、电子邮件被打开、单击、退回的次数及其遭到投诉的次数以及被拒收的次数。

声誉控制面板

Amazon SES 控制台包含一个声誉控制面板,可以使用它来跟踪可能影响电子邮件发送的问题。

电子邮件接收

在使用 Amazon SES 接收传入电子邮件时,可以完全掌控要接收哪些电子邮件,以及接收电子邮件后要如何处理。

邮箱模拟器

借助 Amazon SES 邮箱模拟器,可以轻松测试应用程序如何处理各种场景 (如退回邮件或投诉),而不会影响您的发件人。

代码示例-使用 AWS 开发工具包通过 Amazon SES 发送电子邮件

    public static void send(SesClient client,String sender,String recipient,String subject,String bodyHTML) throws MessagingException {Destination destination = Destination.builder().toAddresses(recipient).build();Content content = Content.builder().data(bodyHTML).build();Content sub = Content.builder().data(subject).build();Body body = Body.builder().html(content).build();Message msg = Message.builder().subject(sub).body(body).build();SendEmailRequest emailRequest = SendEmailRequest.builder().destination(destination).message(msg).source(sender).build();try {System.out.println("Attempting to send an email through Amazon SES " + "using the AWS SDK for Java...");client.sendEmail(emailRequest);} catch (SesException e) {System.err.println(e.awsErrorDetails().errorMessage());System.exit(1);}}public static void sendemailAttachment(SesClient client,String sender,String recipient,String subject,String bodyText,String bodyHTML,String fileLocation) throws AddressException, MessagingException, IOException {java.io.File theFile = new java.io.File(fileLocation);byte[] fileContent = Files.readAllBytes(theFile.toPath());Session session = Session.getDefaultInstance(new Properties());// Create a new MimeMessage object.MimeMessage message = new MimeMessage(session);// Add subject, from and to lines.message.setSubject(subject, "UTF-8");message.setFrom(new InternetAddress(sender));message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient));// Create a multipart/alternative child container.MimeMultipart msgBody = new MimeMultipart("alternative");// Create a wrapper for the HTML and text parts.MimeBodyPart wrap = new MimeBodyPart();// Define the text part.MimeBodyPart textPart = new MimeBodyPart();textPart.setContent(bodyText, "text/plain; charset=UTF-8");// Define the HTML part.MimeBodyPart htmlPart = new MimeBodyPart();htmlPart.setContent(bodyHTML, "text/html; charset=UTF-8");// Add the text and HTML parts to the child container.msgBody.addBodyPart(textPart);msgBody.addBodyPart(htmlPart);// Add the child container to the wrapper object.wrap.setContent(msgBody);// Create a multipart/mixed parent container.MimeMultipart msg = new MimeMultipart("mixed");// Add the parent container to the message.message.setContent(msg);msg.addBodyPart(wrap);// Define the attachment.MimeBodyPart att = new MimeBodyPart();DataSource fds = new ByteArrayDataSource(fileContent, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");att.setDataHandler(new DataHandler(fds));String reportName = "WorkReport.xls";att.setFileName(reportName);// Add the attachment to the message.msg.addBodyPart(att);try {System.out.println("Attempting to send an email through Amazon SES " + "using the AWS SDK for Java...");ByteArrayOutputStream outputStream = new ByteArrayOutputStream();message.writeTo(outputStream);ByteBuffer buf = ByteBuffer.wrap(outputStream.toByteArray());byte[] arr = new byte[buf.remaining()];buf.get(arr);SdkBytes data = SdkBytes.fromByteArray(arr);RawMessage rawMessage = RawMessage.builder().data(data).build();SendRawEmailRequest rawEmailRequest = SendRawEmailRequest.builder().rawMessage(rawMessage).build();client.sendRawEmail(rawEmailRequest);} catch (SesException e) {System.err.println(e.awsErrorDetails().errorMessage());System.exit(1);}System.out.println("Email sent using SesClient with attachment");}

限时-SES 提供灵活的免费套餐

作为 AWS Free Tier 的一部分,SES 提供灵活的免费套餐,使您可以免费试用所需的 SES 电子邮件功能。在开始使用 SES 后的 12 个月内,免费套餐客户每月最多可免费接收 3000 条消息。

以下 SES 产品的消息费用有资格享受 SES 免费套餐:

  • 出站电子邮件
  • 入站电子邮件
  • 虚拟可交付性管理器出站电子邮件处理

附录

亚马逊云服务免费体验中心
将 Amazon SES 与 AWS 开发工具包结合使用
通过 AWS 管理控制台开始使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/188478.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新支付宝转卡码生成之转账源代码(隐藏部分卡号)

一、需要准备好自己的卡号、名称、以及对应的姓名 二、然后将自己的信息填入下面的代码中 三、然后将拼接好的代码,利用转码技术生产对应的二维码 四、这样一个跳转银行卡二维码的转账码就做好了 效果演示:如下 支付宝扫码、跳转码、转卡码、隐藏卡号…

classification_report分类报告的含义

classification_report分类报告 基础知识混淆矩阵(Confusion Matrix)TP、TN、FP、FN精度(Precision)准确率(Accuracy)召回率(Recall)F1分数(F1-score) classi…

Linux编辑器---vim的使用

Vim是一个高度可配置的文本编辑器,它是操作Linux的一款利器,旨在高效地创建和更改任何类型的文本。这款编辑器起源于"vi",并在此基础上发展出了众多新的特性。Vim被普遍推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来…

asp.net core自定义异常过滤器并记录到Log4Net日志

1.创建异常过滤器特性 using Log4Net.Controllers; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters;namespace Log4NetTest {public class CustomerExceptionFilterAttribute : Attribute, IExceptionFilter{private readonly ILogger<CustomerE…

docker通过nginx代理tomcat-域名重定向

通过昨天的调试&#xff0c;今天做这个域名就简单了&#xff0c; 正常我们访问网站一般都是通过域名比如&#xff0c;www.baidu.com对吧&#xff0c;有人也通过ip&#xff0c;那么这个怎么做呢&#xff1f;物理机windows可以通过域名访问虚拟机linux的nginx代理转向tomcat服务…

【多线程 - 01、概述】

进程 几乎所有的操作系统都支持进程概念&#xff0c;进程是处于运行过程中的程序&#xff0c;进程是操作系统中进行资源分配的基本单位。 三个基本特征 独立性&#xff1a;指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。而对于未建立任何进程的程序&…

257. 二叉树的所有路径

描述 : 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 题目 : LeetCode 257.二叉树的所有路径 : 257. 二叉树的所有路径 分析 : 我们可以注意到有几个叶子节点&#xff0c;就有…

基于SpringBoot+Vue+mysql卓越导师双选系统设计与实现

博主介绍&#xff1a;✌Csdn特邀作者、博客专家、博客云专家、B站程序阿龙带小白做毕设系列&#xff0c;项目讲解、B站粉丝排行榜前列、专注于Java技术领域和毕业项目实战✌ 系统说明简介&#xff1a; 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较…

win10使用mingw安装OpenCV4.8

1. cmake安装 下载链接如下https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7-windows-x86_64.zip 解压后放到指定目录后&#xff0c;添加bin目录到环境变量即可。 2. mingw安装 下载链接如下(下图的x86_64-posix-sjlj)&#xff1a; Download x86_…

【tgowt】更新thirdparty

更新完毕后是这样的 之前有过构建但是不能用在owt-p2p项目中,会有崩溃? 【tgowt】cmake转ninja vs构建现在好像都更新到108了 submodule比较麻烦 只修改这里的还不行:一旦git submodule init 后,再改这里的似乎晚了?如果能成功clone就有生成 还必须要改这里的 折腾好几次才…

Echarts柱状体实现滚动条动态滚动

当我们柱状图中X轴数据太多的时候&#xff0c;会自动把柱形的宽度挤的很细&#xff0c;带来的交互非常不好&#xff0c;因此就有一个属性来解决&#xff1a;dataZoom 第一种简易的版本&#xff0c;横向滚动。 dataZoom: {show: true, // 为true 滚动条出现realtime: true, // 实…

【Java】Netty创建网络服务端客户端(TCP/UDP)

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Netty创建网络服务端客户端示例。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更…

徒步“三色”泸溪 共赏冬日胜景

&#xff08;金笛 胡灵芝&#xff09;11月11日&#xff0c;“中国体育彩票”2023年“走红军走过的路”徒步穿越系列活动&#xff08;泸溪站&#xff09;暨泸溪文旅推荐活动在泸溪县举行&#xff0c;来自全国各地千余名户外爱好者通过徒步的方式&#xff0c;传承红色基因&#x…

浅浅地优化下视频流播放体验

作者&#xff1a;唐子玄 这一篇将从零开始&#xff0c;一步步解决如下这些问题&#xff1a;如何播放单个视频&#xff1f;如何将播放器模块化&#xff1f;如何实现视频流&#xff1f;如何优化视频播放内存&#xff1f;如何优化视频流播放体验&#xff1f; 播放视频 ExoPlayer…

HashMap 是怎么解决哈希冲突的?

&#xff08;本文摘自mic老师面试文档&#xff09; 常用数据结构基本上是面试必问的问题&#xff0c;比如 HashMap、LinkList、 ConcurrentHashMap 等。 关于 HashMap&#xff0c;有个学员私信了我一个面试题说&#xff1a; “HashMap 是怎么解决哈希冲突 的&#xff1f;” …

网络安全基础之php开发文件上传的实现

前言 php是网络安全学习里必不可少的一环&#xff0c;简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理 正文 在正常的开发中&#xff0c;文件的功能是必不可少&#xff0c;比如我们在论坛的头像想更改时就涉及到文件的上传等等文件功能。但也会出…

前端通过导入editor.md库实现markdown功能

小王学习录 今日摘录前言jquery下载editor下载editor和jquery的导入初始化editor总结 今日摘录 满招损&#xff0c;谦受益 前言 要想通过editor.md实现markdown的功能&#xff0c;需要经过如下四步&#xff1a; 下载editor.md到本地将本地editor导入到前端代码中编写少量代…

No source control providers registered

使用vscode时碰到这个问题 git扩展没启动

LeetCode(3)删除有序数组中的重复项【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 26. 删除有序数组中的重复项 1.题目 给你一个 非严格递增排列 的数组 nums &#xff0c;请你** 原地** 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保…

推荐这款机器学习的特征筛选神器!

大家好&#xff0c;特征选择是机器学习建模流程中最重要的步骤之一&#xff0c;特征选择的好坏直接决定着模型效果的上限&#xff0c;好的特征组合甚至比模型算法更重要。除了模型效果外&#xff0c;特征选择还有以下几点好处&#xff1a; 提高模型性能并降低复杂性&#xff08…