はじめに
業務でSESを使うことになりましたが、
色々とわからないことだらけだったのでまとめました。
※随時更新
対象者
- SES初学者
目次
SESとは
- コスト効率の高いEメール送受信サービス
- メール送信可能
- メール受信可能
- Amazon S3バケットに自動的に配信可能(他にもSNS,Lambda,workmail)
- 受信時にLambdaを使用してカスタムコードの実行や特定のキーワードを含むメッセージ時にSNS通知が可能
- 一般的なメールボックスが設けられているわけではないので注意
SESによるメール送信
- 以下の3つの方法
- Amazon SESコンソール
- テストEメールを送信するための最も迅速な方法
- ユースケース:システムアップ時にテストする場合
- Amazon SES API
- SendEmailAPI:From,To,Subject,Bodyのみ用意すれば、SES側がメッセージを生成して送信
- SendRawEmailAPI:メッセージ全体をアプリケーション側で生成して送信
- IAMユーザ、グループ、ロールで実行できるSES APIアクションを選択
- ユースケース:アプリケーションから直接メール送信を行う場合
- SMTP インターフェース
- 生成済みEmailメッセージを受け取って送信するSESのSMTPエンドポイント
- ポート:25 / 465(SMTP over SSl) / 587(Message Submission)
- 要TLS(Transport Layer Security)
- 要認証
- 認証には専用IAMユーザを作成してそのクレデンシャルを使用
- ユースケース:既存の送信用SMTPサーバからリレーしたり、SMTPを前提としてプログラムから直接利用する場合
- 生成済みEmailメッセージを受け取って送信するSESのSMTPエンドポイント
- Amazon SESコンソール
SMTPエンドポイントを利用する際の注意点
- デフォルトではEC2からの外向きTCP25番ポートは制限対象
- 以下の手順で解除可能
送信制限に関して
- 送信クォータ/送信最大レートに達した後にメールを送信しようと、スロットリングエラーが発生、Eメールは破棄される。その後、再度送信するには必要な送信クォータの量に増えるまで待つ必要がある。
- 上限緩和方法
- 自動的に引き上げるにはガイドラインに従う
- サポートセンターに連絡
アクセスレベル
-
サンドボックス(初期状態)
- 指定されたアドレスのみに送信可能
- 小さな送信制限
- 200通/24時間
- 最大送信レート 1通/秒
-
プロダクション(サンドボックスの外)
- 送信先に制限なし
- 送信制限は実績によって決定
- 上限緩和申請をすることで、自動的にこちらに変更
ドメイン検証
-
SESでメールを受信/送信するには、所有するドメインを証明する必要がある
- SESでのドメイン利用開始処理
- DNSサーバ上でTXTレコードの公開
-
MXレコードの公開
- SESのメール受信用のエンドポイントをMXレコードに指定可能
バウンスと苦情
- 通知はフィードバック転送orSNSトピックのいずれかで必ず受け取る。
- 両方を無効化・なしには設定できますが、その場合はフィードバック転送による通知がSESから送られてきます。
- フィードバック通知
- SNSトピック
- 細かい運用が可能
- フィードバック転送
- デフォルトで有効、メール転送という形でSESから送付
- SESによる転送先は、元のメールの送信方法とパラメータによって異なる
- SMTPインターフェイス
- MAIL FROMコマンドのアドレス、つまり差出人として設定したアドレス
- Amazon SES API
- ReturnPathパラメータ等で通知先のアドレスを指定しておくことができる
- SMTPインターフェイス
- フィードバック通知
おわりに
Amazon SESAmazon SESについてまとめました。