以前、AWS上でWordPressを立ち上げ、WP Mail SMTP プラグインを使ってメールを送信できるようにしました。
しかし、その時に設定した環境では、送信されるメールの送信元アドレス(Googleのメールアドレス)と送信元サーバ(Amazon)が異なる為、受信したメーラー側で以下のような警告が発生してしまいます。
自分にメールしているだけなので大きな問題はありませんが、ちょっとかっこ悪いのと、SPFやDKIMが使えるかどうかも確認してみたかったので、AWSから自ドメイン(k-ornata)のメールアドレスを送信元にしてメールを送信してみることにしました。
Amazon SES に送信元ドメインを登録し、Route 53にレコードを登録するだけでOK
DNSとしてroute53を利用している前提ですが、Amazon SES に送信元にしたいドメインを登録し、その勢いでroute 53に必要なレコードを登録するだけで設定が完了します。
1.SES から自ドメインを登録
SES Homeにアクセスし、左ペインから Domains を選択します。
「Verity a New Domain」をクリックし、以下の通り、自ドメイン名の入力と、「Generate DKIM Setting」のチェックを入れます。
2.Route 53へのレコード追加
上の画面で「Verity This Domain」をクリックすると、以下のようにDNSサーバに登録するTXT, CNAME, MXレコードの情報が表示されます。
今回はDNSとして Route 53 を使いますので、「Use Route 53」のボタンを押すだけです。
すると以下のように確認画面が表示されますので、必要に応じて(自ドメインでメールを受信したい場合)「Email Receiving Record」にチェックを入れ、「Create Record Sets」にチェックを入れます。
すると、以下の画面が表示され、ドメインの確認とDKIMの設定をAWSが自動で開始してくれます。
処理が完了(だいたい5分くらい)すると、(AWSコンソールの?)管理者のメールアドレスに、以下2通のメールが送られてきます。
メール受領後、再度、SES Home の Domainsを確認すると、ステータスが pendingから verified に変わっているのが確認できます。
3.自ドメインでのメール送信確認
以上で自ドメインでメール送信できるようになりましたので、テストメールを送ってみます。
以下のとおり、SES Home のDomains から今回登録したドメインにチェックし、「Send a Test Email」を押します。
すると以下のとおり、テストメール送信用のウィンドウがでますので、各項目を入力し、「Send Test Mail」を押します。
すると、Toで指定したメールアドレスにテストメールが送られてきます。
上記のとおり、Fromがちゃんと自ドメインで送られてきており、SPFやDKIMもパスしています。(簡単すぎて、SPFやDKIMの理解にはつながらないかもしれませんが。。)
なお、Fromの@の左側は(たぶん)何でも大丈夫です。(ユーザの有無とかは気にしなくてよさそうです。)
また、ToはSES Home のEmail Addressesにてverifiedになっているものを使ってください。もしそれ以外のアドレスに送付しようとすると、以下のように「検証されていない」と怒られます。
これはセキュリティ面を考慮し、デフォルトでは検証済のアドレスにしか送れないようにしているらしいです。(これを解除する方法があるらしいですが、ここでは触れません。)
4.WordPressのWP Mail SMTP の送信元アドレスを自ドメインに変更
WordPressからメールを送信する時にWP Mail SMTP プラグインを使っている場合、その送信元アドレスを今回設定した自ドメインのものに変更します。
そしてテストメールを送信してみると、以下の通り、自ドメインのメールアドレスからメールが送信されてくることが確認できます。
これでWordPressのメール環境はスッキリしましたが、あまりにも簡単だったので、SPFやDKIMの勉強にはならなかった気がします。
機会を見て、もうすこし掘りさげてみたいと思います。