AWSをいじるにあたってSESは使っておかないとなと思っていましたが、ある日メールの送信に加えて受信でもできるという事が発覚しました。
上手く使えばこのドメインで使っているメールもSESを使えば送受信できるようになるのでは?と思いましたのでチャレンジしてみます。
(できるかは今の所不明)
今回は送信編。WorkMailは知らん。
やること
ap-northeast-1(東京)で使えないので、us-west-2(オレゴン)で設定しています。 まぁメールなので遠くでも良いでしょう。
- ドメイン認証
- まぁ必須
- お試しとしてses.taiko19xx.net というドメインを使います
- Route53では管理してません
- メール認証
- sandbox(制限未解除)の場合は必要
- SMTP認証作成
- 要はIAMです
- 受信ルール設定
- Gmailでのメール送信設定時に必要
- Gmail設定
- SMTPとか
ドメイン認証
まぁドキュメントはありますが...。 サイドバーのDomainsから作業します。
TXTとMXをDNSに設定しろと言われるので設定して(今回は受信も設定する必要があるのでMXもセットします)
statusがverifiedになれば完了です。
メール認証
分かり(やすい|にくい)ドキュメントがあります。
サンドボックス環境の場合は送信先がメール認証済みに限られるので認証しておきます。
サイドバーのEmail Addressesから作業します。
メールアドレスを入れてVerify This Email Addressを押すとメールが飛んでくるのでクリックして
statusがverifiedになれば完了です。
SMTP認証作成
ドキュメント
サイドバーのSMTP Settingsから作業します。
Create My SMTP Credentialsを押すとIAMの設定画面に移動するので、あとは画面に沿って進むだけです。
AmazonSesSendingAccessのポリシーだけアタッチされたユーザーが作成されます。
受信ルール設定
後述しますが、Gmailの設定時にメールアドレス宛にメールを送信して存在確認をする過程があります。
なので、最低限の受信ルールだけを設定して、S3でメールを受信できるようにしておきます。
詳しいドキュメントもあります。
サイドバーのRule Setsから作業します。
Recipientsでは受信したいメールアドレスを指定して
ActionsはS3を設定して(バケットがない場合は作れます)
ルール名を適当に入れて
確認画面で問題ない事を確認して、Create Ruleして
statusがEnabledになっていれて完了です。
指定したS3バケットに謎のファイルも生成されています。
Gmail設定
Gmailの設定→アカウントとインポート→名前に「他のメール アドレスを追加」というリンクがあるのでそこから作業します。
名前は適当、メールアドレスはルールのRecipientsに設定したアドレスにして
(エイリアス扱いはよく分からないので一旦外しています)
SMTPサーバーはリージョンごとにエンドポイントにしてポートは587、ユーザー名とパスワードは先ほど生成した情報にして
「アカウントを追加」を押すとS3宛てに確認メールが届いているので、ダウンロードして拡張子emlを付けて開いて、中のリンクをクリックするなり確認コードを入力するなりして認証を完了して
こんな感じで追加されていればOKです。
テスト
Gmailで新規作成時にFromが選べるようになったので、先ほど作成したアドレスを選択して送信します。
届きましたね。ところでWindows10のメールってヘッダ見られないんですかね?
ちなみに、Gmailへの設定後に少し待つと、スマホ版のGmailアプリからでも送信できるようになります。
おわり
簡単にメールを送信できるようになりました。手順を見直しながらやってみましたが、設定が簡単でいいですね。
リージョンは仕方ないとして、画面が英語のままなのがちょっとハードル高めでしょうか。他が日本語な場合が多いのでなおさらですね。
さて受信も色々調べていますが、中々一筋縄ではいかなそうな予感がしています。多分SNSかLambdaフックして送信するのかなぁとは思っていますが果たして...。