今回は「お名前.com」で取得した独自ドメインを Amazon Route 53 に登録して Amazon SES(Simple Email Service)で SMTP プロトコルでメールを送信する手順を解説します。
最終的には Linux マシンよりコマンドラインでメールを送信できるように設定します。
過去には SES を利用してメールを受信する手順を解説しました。
【AWS】Route53に「お名前.com」取得の独自ドメインを登録してSES(Simple Email Service)で無料でメールを受信する手順
以下の記事が SES を利用してメールを送信する手順の最新版です。
【AWS】Route53 に「お名前.com」取得の独自ドメインを登録して Amazon SES(Simple Email Service)で SMTP プロトコルでメールを送信する手順
「お名前.com」で取得した独自ドメインを Route 53 に登録する
「お名前.com」で取得した独自ドメインを「Route 53」に登録します。
手順は、以前お名前.com で取得した独自ドメインを Amazon Route 53に登録する手順を解説した記事を作成したので、こちらを参考にしてドメインを登録します。
【AWS】お名前.com で取得した独自ドメインを Amazon Route 53 で名前解決して EC2 インスタンスの Web サーバーにアクセスさせる手順]
AWS 管理コンソールにログインし「サービス」より「ネットワーキング&コンテンツ配信」–「Route 53」をクリックします。
「DNS management」の「Get started now」ボタンをクリックします。
左側ペインより「Hosted zones」をクリックし「Create Hosted Zone」ボタンをクリックします。
「Created Hosted Zone」ボタンをクリックして下図のように「You have no hosted zones」のメッセージが表示されたら再度「Create Hosted Zone」ボタンをクリックします。
Create Hosted Zone の画面が表示されたら以下のように設定します。
- Domain Name ← お名前.com で取得した独自ドメイン名を入力します。(例:example.comなど)
- Type ← 「Public Hosted Zone」を選択します。
設定が完了したら「Create」ボタンをクリックします。
登録が完了すると、下図のように AWS のネームサーバーが4つ表示されます。
この4つのネームサーバーを以下の手順で「お名前.com」に登録します。
「お名前.com」のネームサーバーに登録する手順
「お名前.com」のドメイン Navi にログインします。
ログインしたら下図のように「ドメイン一覧」タブをクリックします。
下図のようにドメイン一覧が表示されるので、対象のドメインの「ネームサーバー」の「変更する」ボタンをクリックします。
下図のように「ご登録情報に変更・相違はありませんか?」の確認画面が表示されるので「登録情報は正しいので、手続きを進める」ボタンをクリックします。
「他のネームサーバーを利用」タブをクリックします。
下図のように Route 53 で指定された 4つのネームサーバー情報を入力します。
入力したら「確認画面に進む」ボタンをクリックします。
「設定する」ボタンをクリックします。
下図のように「ネームサーバーの設定 完了」画面が表示されることを確認します。
Amazon SES(Simple Email Service)での設定手順
ここから Amazon SES(Simple Email Service) の設定をします。
Amazon SES(Simple Email Service) とは
Amazon SES は、メール送信とメール受信の両方が可能です。
過去に SES を利用してメールを受信する手順を解説しました。
今回は SES を利用してメールを送信する手順を解説しています。
【AWS】Route53に「お名前.com」取得の独自ドメインを登録してSES(Simple Email Service)で無料でメールを受信する手順
■料金
SES の料金ですがスパムメール並みにメール送信をしなければ低価格に抑えることができます。
- 月に 62,000 件までは無料。(0円、0 USD)それ以上のメール送信については 1,000 件ごとに 0.10 USD(11.4円)。
- メール送信時の添付ファイル 1 GB につき 0.12 USD(13.68円)。EC2 を使用する場合はその料金。
■メール送信形式
SMTP エンドポイントを利用する場合です。
- ポート 25番、465番(SMTP over SSL)、587番(Message Submission)が利用できます。
- いずれも認証(SMTPユーザーとパスワード)が必要です。
- TLS が必須です。
HTTP REST API を利用する場合です。
- アプリケーションから直接メール送信ができます。
- 認証はアクセスキーとシークレットアクセスキーで行います。
Amazon SES(Simple Email Service)での設定手順
AWS の管理コンソールにログインし「サービス」より「カスタマーエンゲージメント」-「Simple Email Service」をクリックします。
2018年11月現在、東京リージョンでは「Amazon SES(Simple Email Service)」は提供していないので、今回は「米国東部(バージニア北部)」を選択します。
SES 利用可能リージョン(2019年8月現在)
- 米国東部(バージニア北部)
- EU(アイルランド)
- 米国西部(オレゴン)
※Simple Email Service が東京リージョンでサービス開始しない理由ですが、AWS Summmit で AWS のエンジニアの方に聞いたところ、日本のキャリア3社(NTT Docomo、KDDI au、Softbank)のキャリアメールの関係でなかなか東京リージョンでサービスを開始できないと話していました。(正確な情報なのか不明なので注意)
SMTP 認証アカウントを作成します。
SES のホーム画面より左側ペインの「SMTP Settings」をクリックします。
「Create My SMTP Credntials」ボタンをクリックします。
IAM ユーザー名(下図はデフォルトのユーザー名です)を確認し「作成」ボタンをクリックします。
「認証情報のダウンロード」ボタンをクリックします。
認証情報が記載されている CSV ファイルをダウンロードすると以下のような形式で「SMTP ユーザー名」と「SMTP パスワード」が記載されています。
ドメイン認証をする
次に「ドメイン認証」をします。
Amazon SES でのメールの送受信に使用するドメイン(例えば、tama-chan.com など)に関しては、自身がそのドメインを所有していることを証明する必要があります。
インターネットサービスプロバイダ(ISP)と Amazon SES の信頼関係を維持するために、Amazon SES は送信者が本人であることを確認する必要があります。
したがって、送信者は送信アイデンティティを保護するために、Amazon SES 経由で送信するメールの送信元となるすべてのメールアドレスを確認する必要があります。
認証には以下の2種類があります。
- ドメイン認証
- メール認証
まずは新規ドメイン(xxxxxxxx.com)を Route 53 に登録している状態なので「ドメイン認証」を行います。
※ただし後ほど特定のメールアドレスにメール送信するため、メール認証もします。
SES(Simple Email Service)のホーム画面より左ペインの「Dmains」をクリックします。
「Verify a New Domain」ボタンをクリックします。
「Verify a New Domain」画面で以下の情報を入力します。
- ドメイン名 ← お名前.com で取得したドメイン名を入力します。
- Generate DMIK Setting ← DKIM(DomainKeys Identified Mail)を利用する場合はチェックを入れます。
「Verify This Domain」ボタンをクリックします。
DKIM(Domain Keys Identified Mail)とは
DKIM とは
①正当ドメイン保持者からメール送信されたことをチェックする
②改ざんされていないメールかどうかをチェックする
デジタル署名方式の送信元ドメイン認証技術のことを言います。
送信元と受信側で以下の役割を持っています。
- 送信元(SMTPサーバー) ← メールを送信する際に、秘密鍵を使って生成したデジタル署名を行う
- 受信側で送信元(SMTPサーバー)の公開鍵を利用して検証をする
以下のように「DKIM Record Set」が生成されることを確認します。
続けて、このドメインを「Route 53」に登録します。
「Use Route 53」ボタンをクリックします。
設定直後は以下のように「pending」になっています。
ドメイン認証の確認
24時間程度待ち、以下のようなステータスになっていることを確認します。
- Verification Status ← verified
- DKIM Status ← verified
- Enabled for Sending ← Yes
送信メールアドレスの登録
AWS SES で送信するメールアドレスを登録します。
SES のホーム画面より左側ペインの「Email Address」をクリックし「Verify a New Email Address」ボタンをクリックします。
「Verify a New Email Address」画面で、送信するメールアドレスを入力します。
※送信するメールアドレスは例えば「tama-chan.com」なら「test@tama-chan.com」などになります。
入力したら「Verify This Email Address」ボタンをクリックします。
「Verification Email Sent」画面を確認し「Close」ボタンをクリックします。
登録直後は下図のように「pending verification(resend)」の状態になっています。
S3 でメールを受信して認証する
先ほど新規でドメインを登録して送信メールアドレスの認証を行ないましたが、認証するためには登録したメールアドレスに対して送信されたメールを受信して開く必要があります。
まだこの段階でメール受信サーバが構築していない場合は S3 でメールを受信して認証することができます。
SES ダッシュボードの左側ペインより「Rule Sets」–「Create a New Rule Set」ボタンをクリックします。
「Rule set name(ルールセット名)」を入力して「Create a Rule Set」ボタンをクリックします。
続けて「View Active Rule Set」ボタンをクリックします。
ルールセットは作成しましたが、まだルールが存在しない状態です。
「Create Rule」ボタンをクリックします。
受信するメールアドレスのドメイン(例えば、user01@tama-chan.com なら tama-chan.com など)を入力し「Add Recipient」ボタンをクリックします。
ドメインが登録されたことを確認し「Next Step」ボタンをクリックします。
S3 バケットを設定し「Next Step」ボタンをクリックします。
「Rule name(ルール名)」を設定し「Next Step」ボタンをクリックします。
内容を確認し「Create Rule」ボタンをクリックします。
ルールセットが「Enabled」の状態になっていることを確認します。
S3 にメールが受信していることを確認します。
「ストレージ」-「S3」をクリックします。
下図のようにメール(ファイル)が受信されていることを確認し、チェックを入れて「ダウンロード」ボタンをクリックします。
※ファイルが存在しない場合は、再送信します。
下図のようなメールを受信したことを確認します。
以下のリンクをクリックして認証を完了させます。
リンクをクリックすると下図のように「検証に成功しました」メッセージが表示されます。
下図のようにステータスが「Verified」になっていることを確認します。
受信メールアドレスの登録
AWS に利用申請しない場合はサンドボックス(Sandbox)環境でしか利用できません。
(AWS SES に登録したメールアドレスだけしかメールを受信できません)
つまり、アカウントが Amazon SES サンドボックスにまだある場合は、すべての受取人のアドレス(送信メールアドレスだけでなく、受信メールアドレス)も確認する必要があります。
後程 AWS に利用申請を出しますが、ここではサンドボックス用の受信メールアドレスを登録します。
ここで登録するのは送信メールアドレスではありません。
今回の場合は送信メールの認証ではなく「ドメイン認証」をしています。
SES のホーム画面より左側ペインの「Email Address」をクリックし「Verify a New Email Address」ボタンをクリックします。
「Verify a New Email Address」画面で、受信するメールアドレスを入力します。
※受信するメールアドレスは例えば「tama-chan.com」なら「test@tama-chan.com」など GMAIL でもプロバイダメールでも問題ありません。
入力したら「Verify This Email Address」ボタンをクリックします。
「Verification Email Sent」画面を確認し「Close」ボタンをクリックします。
登録直後は下図のように「pending verification(resend)」の状態になっています。
AWS より以下の確認用のメールが届いているか確認し、リンクをクリックします。
リンクをクリックすると以下のメッセージが出力されます。
メール確認用の URL をクリック後に再度メールのステータスを確認し「verified」に変わっていることを確認します。
mailx コマンドでのメール送信手順
SES 側の設定が完了したので、最後に mailx コマンドでメール送信確認をします。
mailx コマンドがインストールされた Linux サーバにログインします。
[root@ip-172-31-38-38 ~]# cat /etc/redhat-release |
もし mailx コマンドがインストールされていない場合は以下のコマンドで mailx コマンドをインストールします。
[root@ip-172-31-38-38 ~]# yum install mailx |
以下のように mail(mailx)コマンドを実行するアカウントのホームディレクトリに「.mailrc」ファイルを作成します。
[root@ip-172-31-38-38 ~]# pwd
~ 省略 ~ -rw-r–r–. 1 root root 288 Nov 7 14:23 .mailrc
~ 省略 ~ |
以下のように mailx コマンドを実行します。
[root@ip-172-31-38-38 ~]# echo “メール本文です。最後にピリオドを追加します。.” | mail -v -s “タイトルを入力します。” xxxx@gmail.com |
メールが送信されていることを確認します。
Amazon SES のメール送信数制限を解除して本運用する場合の手順
今までサンドボックス(Sandbox)環境での設定について説明ましたが、メール送信について制限がありました。
以下より Amazon SES のメール送信数制限を解除して本運用する手順を解説します。
サンドボックス環境では以下のようにメール送信に関して制限されています。
- Sending Quota: send 200 emails per 24 hour period ← 24時間に200通しか送信できません。
- Max Send Rate: 1 email/second ← 1秒間に1通しかメールが送信できません。
※社内のチーム環境やグループ内ならこれでも十分なレベルです
メールの送信解除を依頼する場合は SES のホームページより左側ペインの「Sending Statistics」をクリックし「Request a Sending Limit Increase」ボタンをクリックします。
以下のように「ケースの作成」画面が表示されるので解除してほしい制限と具体的な制限値を入力します。
また「申請理由の説明」に理由を記述します。
設定が完了したら一番下の「送信」ボタンをクリックします。
リクエストを送信したら AWS サポートからの回答を待ちます。
コメント