はじめに
WP Mail SMTP Proの設定方法とIAMの設定について、簡単にまとめます。
環境構築
下記の通りに、EC2上でWordpressを構築しました。
- Amazonlinux2
- PHP 8.0.8
- PHP-FPM 8.0.8
- nginx 1.20
SESの設定方法は、下記の通りにするとよいです。(Lambdaの構築工程は省きましょう)
ドメインメール設定です。
Pro版 のインストール方法
まず、Wordpressの管理画面からWP Mail SMTP
の無料バージョンをインストールします。
今回、Amazon SES
を使用しますが、そのためには、WP Mail SMTP Pro
にアップグレードする必要があります。
Pro版にバージョンにアップグレードする方法は、下記のドキュメント通りに設定するとよいです。
ただし、EC2上でWordpressを構築している場合、Pro版は、手動でインストールする必要があります。
手動でインストールする方法については、下記のドキュメント通りに行ってください。
Pro版をダウンロードし、Wordpressの管理画面からアップロードするイメージです。
最後に、IAMユーザーで作成したアクセスキーとシークレットキー、リージョンを記入し、Add an Email Address
をクリックすると、SES設定が完了です。
Email Test
タブからテストメールを実行すると、SESを使い、メール送信することができました。
DMARCエラー
テストメールを送信した際、以下のDMARCエラーに遭遇しました。
このエラーは、ドメインに対して、DMARCと呼ばれる成りすまし対策設定がされていないことを注意するメッセージでした。
そしてDMARCが正しく設定されていない場合、送信先が受信した際、迷惑メールフォルダに入るだけでなく(こちら側の送信は成功するのに相手側では)受信されないケースが出る可能性があるため、対策しましょう。
対策は、SESで設定したドメインと同じドメイン名のRoute53ホストゾーンに、下記のレコードを作成します。
-
レコード名
:_dmarc
-
レコード
:TXT
-
値
:v=DMARC1; p=none; fo=1; rua=mailto:test@example.co
-
test@example.co
は、送信元のメールアドレスになります。 - ホストゾーンは、
example.co
-
これで再度、テストメールを送信すると、成功します。
IAMユーザーの最小権限の設定
IAMユーザーの権限は、AmazonSESFullAccess
ですが、最小限の権限を設定しましょう。
以下の通りにIAMポリシーを作成し、IAMユーザーにアタッチしてください。
送信元IPでの制限をかけており、111.11.11.11/32
は、EC2のIPを指定しています。
また、アクションもses:SendRawEmail
のみで問題ありません。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ses:SendRawEmail",
"Resource": "*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "111.11.11.11/32"
}
}
}
]
}