Published on

修复FarBox2.0的SES问题

Authors
  • avatar
    Name
    wellsleep (Liu Zheng)
    Twitter

解决 FarBox 2.0 中使用 AWS SES 的问题

FarBox 2.0 中的邮件通知系统使用了 AWS SES 服务。在仔细研究了 AWS 的逻辑之后,历经一年多,终于完全搞定。不得不说,FarBox 真是一个自学 web 开发的「好」例子...

SES 是一个第三方邮件服务,相当于 AWS 的邮件群发服务。在使用上,通过 API 或 SDK 可以将相同的内容推送给大量客户,算是一个常用且刚需的服务。但是需要有几个注意:

  1. 沙盒时,只有发件人邮箱和登记的邮箱域名才可以收发邮件

  2. AWS 各个区域是独立运营的,也就是说如果要使用多个区域的 SES 服务,需要分别开通和验证信息。

  3. 沙盒模式的 SES 服务会对收件、发件、抄送的人都做邮箱校验,因此如果这三个地址中存在任何未被验证的地址,邮件发送将被拒绝,提示:MessageRejected: An error occurred (MessageRejected) when calling the SendEmail operation: Email address is not verified. The following identities failed the check in region US-EAST-1 参考:Amazon SES email sending errors - Amazon Simple Email Service

开通其实看看文档,搜搜网页就可以知道 SES 的用法。但是 FarBox 的坑在于以下知识需要读源码:

知道原因解决起来就容易了。

  • 开个对应区域的 SES

  • /data/log/farbox/web.log 里找到 SES 相关的错误原因,将 SES 从沙盒模式转为生产模式