概要 链接到标题

本文为基于云服务的Mastodon站点搭建的关于使用AWS的SES来发送邮件的扩展介绍。

IAM User 链接到标题

  • 创建User,并为User增加SES的送信权限。
    我的AWS账户中只有一个SES服务,下面的权限设置中没有区分Resource。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ses:SendRawEmail",
            "Resource": "*"
        }
    ]
}
  • 为创建User增加access key,随后作为SMTP认证用

创建SES的Identity 链接到标题

  • 创建identity,设置Domain为你的域名
    identity details

  • 设置你送信用的邮箱地址
    Github

  • 设置identity的类型
    Github

  • 将生成的CNAME记录,追加到你域名的DNS记录中
    Github

  • 将生成的MX和TXT记录,追加到你域名的DNS记录中
    Github

  • 追加后的DNS记录里面,CNAME,MX和TXT记录如下
    Github

申请解除SES的送信限制 链接到标题

在上面的Identity验证成功的基础上,向AWS support发送增加送信次数的申请申请

Mastodon配置文件更新(.env.production) 链接到标题

如果你是按照官方教程配置的话,你的.env.production在/home/mastodon/live下面放着。
更新.env.production里面关于文件存储的以下设置。

参数名设定值
SMTP_SERVERSMTP主机服务器,例:email-smtp.ap-northeast-1.amazonaws.com
SMTP_PORT587
SMTP_LOGIN你为使用SES创建的User的access key id
SMTP_PASSWORD你为使用SES创建的User的access key secret
SMTP_AUTH_METHODnone
SMTP_OPENSSL_VERIFY_MODEnone
SMTP_FROM_ADDRESS验证过的送信邮箱,例:noreply@mas2don.org

如需更多详细设置可参考官方文档的介绍

其他 链接到标题

Identity验证最多会花费72小时,建议仔细检查CNAME,MX,TXT的DNS记录是否设置正确,以免耽误等待时间。