SESとは?
ChatGPTに質問しました。
Q:SESに関して5行程度で教えてください。
A:
AWSのSES(Simple Email Service)は、スケーラブルでコスト効率の良いEメール送信サービスです。
主にマーケティングメールや通知、トランザクションメールの送信に適しており、アプリケーションから簡単にメールを送れるAPIやSMTPインターフェースを提供しています。
SESは、スパム対策やDKIM署名などのセキュリティ機能が組み込まれており、信頼性の高いメール送信が可能です。
また、メール送信のレポート機能もあり、開封率やクリック率の分析に役立ちます。
メールサーバー(SMTPサーバー)の機能を提供してくれます。
SESというよりもSMTPの理解を深めると、後述の手順が良く理解できそうです。
SMTPで送られるメッセージは下記3つで構成されています。
- Envelope:送信元と送信先の情報を持ち、これを使用して送受信が行われる
- Header:普段目にするFROM、TOやタイトルなど
- Body:メール本文
またメールに欠かせないドメインの認証技術には下記3つが存在します。
- SPF:Envelopeのドメインのなりすましを検知
- DKIM:Header、Bodyの改ざんを検知
- DMARC:SPF、DKIMで検知されたときの処理を設定
参考:AWS SESでのドメイン認証(SPF・DKIM・DMARC)設定のポイント
作業内容
SESのID作成
Amazon SES>設定>IDと進み、[IDの作成]を押す
下記を設定する
- IDタイプ:ドメイン
- ドメイン:project.com
- 「カスタム MAIL FROM ドメインの使用」にチェック
- MAIL FROM ドメイン:mail ※Envelopeで使用される
下記を設定する
- IDタイプ:Easy DKIM
- DKIM 署名キーの長さ:RSA_2048_BIT
[IDの作成]を押す
Route53のレコードを確認
Route53>ホストゾーン>project.comと進むと、登録されているレコードが一覧表示される
現状、下記が作成されているはず
- Aタイプ:ALB用
- CNAME:前手順の「DKIMの詳細設定」で「DNS レコードの Route53 への発行」にチェックが入っていれば自動で作成される
- MX:前手順の「ID の詳細」で「DNS レコードの Route53 への発行」にチェックが入っていれば自動で作成される
- TXT:前手順の「ID の詳細」で「DNS レコードの Route53 への発行」にチェックが入っていれば自動で作成される、SPF用
SESで作成したIDのページを開くと、下の方にDMARCのレコードを作成する項目があるので、[DNS レコードの Route53 への発行]を押す
Route53を確認すると下記レコードが作成されている
※none
は全て受信する設定、運用していく上で必要に応じてquarantine
reject
に変える
テストメール送信
テストメール用の送信先アドレスを登録する
Amazon SES>設定>IDと進み、[IDの作成]を押す
- 「E メールアドレス」を選択
- テストで使用する送信先のメールアドレスを入力
- [ID の作成]を押す
テストメールを送信する
先ほど作成したドメインのIDにチェックを入れて、[テスト E メールの送信]を押す
下記を入力して、[テスト E メールの送信]を押す
- From-address:任意のアドレス
- シナリオ:「カスタム」
- カスタム受信者:登録したメールアドレスを入力
- 件名:任意の件名
- 本文:任意の本文
メールが送信される
PythonでSESを使用する
下記ページを参考に実装