はじめに
メールマガジンの送信元メールアドレスとしてよくみるnoreply@custom.domain.example.com
などのメールアドレスがあります。
SESからメールを送信する時に、送信元メールアドレスに、このような独自ドメインのメールアドレスを設定する方法です。
ドメインの取得は行ってあり、Route53に登録済みの前提です。
受信用メールアドレスを作る
SES経由でメールを送信するとき、送信元メールアドレスに指定できるのは、SESで認証されたメールアドレスのみです。
メールアドレスの認証は、SESからメールを送信し、届いたメールアドレス内のリンクをクリックすることで行います。
なので、まずはSESから送信される認証メールを受け取れる「受信用メールアドレス」を作ります。
SESにドメインを登録する
AWSコンソールにログインし、SESを開きます。
その後、リージョンを「米国東部 (バージニア北部)us-east-1」にしてください。東京リージョンでは後続の「受信設定」が行えませんので、注意をしてください。
左メニューに「domains」という項目があるのでクリックし、出てきた画面の「Verify New Domain」ボタンをクリックします。

出てきたポップアップに、メールアドレスのドメインする値を入力し、「Verify This Domein」ボタンをクリックします。
※ 「Generate DKIM Settings」のチェックボックスはDKIM
レコードを生成する場合チェックをつけてください。このレコードを登録すると、送信元のメールがなりすましでないことをクライアントへ証明することができる。らしいです。
すると、DNSへ登録するためのレコード情報が出てきます。Route53を使っている場合は「Use Route53」ボタンをクリックするだけで自動で登録ができます。
ドメインの「Verification Status」がverified
に変わったらドメイン登録は完了です。
受信設定を行う
次に受信用メールアドレスの設定を行います。受信用メールアドレスといっても、メールクライアントなどでメールの内容を見たりはできません。今回は、送られてきたメールをテキストのままS3へ保存する設定を行います。
左メニューの「Rule Sets」をクリックし、出てきた画面の「Create Receipt Rule」ボタンをクリックします。

出てきた画面のフォームに、受信用メールアドレスとして設定したいメールアドレスを入力し、「Add Receipt」ボタンをクリックします。この時に入力するメールアドレスのドメインは、先ほど認証したドメインにしてください。
入力が終わったら、右下の「Next Step」ボタンを押します。
出てきたページのセレクトボックスで「S3」を選択します。

すると、S3のバケット設定入力画面になるので、受信したeメールを保存するバケットを選択します。受信用メールアドレスを複数作るなどで、メールアドレスごとに保存先をフォルダ分けしたい場合はObject key prefix
を設定することをお勧めします。Encrypt Message
、SNS topic
は無しで大丈夫です。
以上で、受信設定は完了です。
送信元メールアドレスの認証を行う
続いて、先ほど作った受信用メールアドレスに認証メールを送って、送信元メールアドレスとして使えるようにします。
まず、「米国東部 (バージニア北部)us-east-1」になっているリージョンを、実際にSESを使ってメールを送信したいリージョンに変更します。
そして、左メニューの「Email Addresses」をクリックして、出てきた画面の「Verify a new Email Address」ボタンをクリックします。

出てきたポップアップに、先ほどの受信設定で設定したメールアドレスを入力し、「Verify This Email Address」ボタンをクリックします。
すると、「Verification Status」がpending verification
の状態で、メールアドレス一覧にメールアドレスが追加されます。
続いて、受信設定で設定したS3バケットを開きます。
「AMAZON_SES_SETUP_NOTIFICATION」と「ランダム文字列のファイル」の二つがあると思います。このうち、ランダム文字列のファイルが送信された認証メールになります。
こちらをダウンロードし、テキストエディタなどで開きます。このメールの最後の方に、認証用のURLが書いてあるので、コピーして、ブラウザなどでアクセスします。SESの紹介ページへリダイレクトされればOKです。(なんでもっとわかりやすいページにリダイレクトさせないんだろう。)
SESのメールアドレス一覧に戻り、「Verification Status」がverified
に変わっていれば認証は成功です。
これでめでたく、設定したメールアドレスを送信元メールアドレスとして使用することができます!