如何配置Amazon的SES
准备工作
1,https://aws.amazon.com/cn/ 上应该已经注册账户了。
2,有自己的独立域名用于邮件的发送,如yourname@domain.com
;如果根域已经被使用,也可以使用 mail.domain.com
类似的二级域名在 SES 上进行绑定。
SES 是什么?
SES 全称为 Simple Email Service ,是由 Amazon 提供的邮件发送服务。
由于相对有一点使用门槛,相对的,邮件发送至国内的邮箱时候,在自由的前提下,更稳定一些,其它国外的邮件发送 API 则经常会遇到对方拒收的情况,特别是 QQ 邮箱。 (但 SES 也无法保证 100% 到达,请悉知)。
另外,在 MarkEditor 上接入 SES,是请注意:
1, SES 是 Amazon 的按量使用的付费服务;
2,相关的配置信息,请自己注意保密,不要以任何形式暴露给别人,以免造成无必要、不可控的 Amazon 的资费盗用;比如在 邮件列表这个功能中,SES 的配置信息,实际保存于当前工作目录的 __emails/configs.json 之中。
配置 SES
第一步,在 https://aws.amazon.com/cn/ 上创建账户、或者登录,然后再 “登录控制台”
第二步,在控制台中,找到 SES (Simple Email Service),并点击进入
第三步,创建、并验证的的域名(用于发送邮件)
如果担心邮件本身影响根域名、或者根域名本身已经有其它邮件相关的设定项了,可以使用二级域名比如 mail.yourdomain.com;但一般情况下,并不需要二级域名,个人性质的,直接独立域名即可。
第四步,获得相关的 DNS 设定项,并进入自己域名服务商(非 Aamzon AWS 上的界面)提供的 DNS 中进行设定。
最终在域名注册商的 DNS 设定记录如下图 (不同域名商的 DNS 设定界面不一样):
注意: 如果要实现最终邮件的转发或者不需要 SES 接收邮件的(这个比较复杂,一般来说,你是收不到的),则没有必要设置 SES 提供的MX 记录。
第五步,一般等上 10 分钟以内,这个域名就会验证通过并有相应的邮件通知;如果超过 24 小时仍然没有验证通过,基本上是因为自己设置这些信息的时候,填写错误。
提交工单,解除 SES 的沙盒环境
Amazon 会将所有新账户放在 Amazon SES 沙盒环境中,并不能被正式启用,需要提交一个工单,由 AWS 的人工进行审核(少则几个小时内通过,长则 24 小时内)。
具体的帮助说明,参考 SES 官方的文档: 《脱离 Amazon SES 沙盒》
一般步骤为:
1,登录 AWS 管理控制台并通过以下网址打开 Amazon SES 控制台:https://console.aws.amazon.com/ses/。
2,访问 https://aws.amazon.com/ses/extendedaccessrequest/
3,填写表单,大抵内容如截图所示,具体可能要根据实际情况调整。
另外,Use Case Description
部分需要描述怎么使用以及处理邮件的弹回、投诉情况,以下内容仅供参考:
My readers will subscribe my blog.
The email addresses list is only opened for the readers who will read my posts. In fact, I manager it by hand.
If any bounces or complaints come, I will remove the related addresses from the list.
So help me to leave the sandbox. Thanks very much.
Best Regards.
创建并获得一个 SES ID & SES Key
SES ID & SES Key 是在 MarkEditor 接入 SES 的必要配置,缺一不可。
填入基本信息,并勾选 “Programmatic access”
然后为这个用户,设定权限,确保其可以对 SES (邮件服务) 有操作的权限
注意,一定要对 ID & KEY 进行保存,以备后续在 MarkEditor 中填入配置需要;如果此时未保存,后面只能再按照上面的流程,重新创造一个新的用户了。
在 MarkEditor 中配置 SES
ME 中对 SES 的设置也是针对 当前工作目录的。
一定要注意自己的工作目录是私密的,不是别人可以碰触到的!因为 SES 的相关配置信息,最终会以明文的方式在自己电脑被存储。
第二步: 填入设置信息
获得邮件发送状态更新
SES 的 API 可以发送邮件,但是发送的最终状态有固有的时间差,所以,API 请求之后,不会马上知道邮件的发送状态。
但 SES 本身提供了一个状态的 Hook,MarkEditor 的服务器端对此有支持 (目前归入 MarkEditor 的云端支持之一),为每一个 Pro 的 License 提供了一个邮件状态更新的 Hook API。
因为只有设定了 Hook API 的前提下,才能使用下面这个动作。
第一步,在 Amazon AWS 中,先进入 SNS(跟 SES 不一样,是负责发送通知的) 的界面
第二步,创建一个 Topic:
第三步,进入 Topic 的详细页面:
第四步,填入 Endpoint,也就是 MarkEditor 提供的 Hook API
注意, Hook API 的获取,具体参考上一段:在 MarkEditor 中配置 SES。
注意事项(垃圾邮件)
假设你绑定的域名是 domain.com
,那么,在后续的发信过程中,你可以使用 name@domain.com
(*@domain.com)`这样的邮箱地址。
但在邮件收发的世界里,非常会注意垃圾邮件的出现,如果你的域名 DNS 设定都刚刚生效,大概率会被邮件接收服务商(比如 Gmail) 认为是垃圾邮件。
所以,可以等上一天再使用,可能会更好。
或者告诉自己的联系人,把某个指定的邮件地址比如 name@domain.com
添加到具体的联系人,或者进入垃圾邮件,重新标注为非垃圾邮件。
一般,过一段时间,就不会有 “垃圾邮件” 的烦恼了。