Amazon SESとは?
コスト効率が高いクラウドベースのeメール送受信サービス。バージニア、オレゴン、アイルランドのリージョンにSESを設置して利用可能
イメージ
東京リージョンのMTA(メール転送エージェント)が配置されているEC2から、バージニア、オレゴン、アイルランドリージョンのSESに対してメールを転送する。
ユースケース
トランザクションメッセージ送信
購入確認、出荷通知、注文状況の更新、ポリシー変更通知
マーケティングコミュニケーションの送信
広告、ニュースレター、特典情報、顧客が希望する製品やサービスの宣伝
通知の送信
システムヘルスレポート、アプリケーションアラート、ワークフローステータスの更新
受信eメールの受信
Amazon S3バケットに自動で配信できる。メッセージの受信時にAWS Lambdaを使用してカスタムコードを実行することや、特定キーワードを含むメッセージの受信時にAmazon SNSを使用して通知を配信することができる。
メールの送信
3つの方法あります。
SESコンソール
eメールの送信テストをする場合の最も早い方法です。
ユースケース
システムセットアップ時にテストしたい場合
SES API
2種類のAPIがあります。
SendEmail API
From、To、Subject、Bodyだけを用意すればSES側でメッセージを生成して送信してくれる。
SendRawEmail API
メッセージ全体をアプリケーション側で生成して送信する。より細かくメッセージの内容を制御することが可能です。
ユースケース
アプリケーション側から直接メール送信を行たい場合
SMTPインターフェイス
認証には専用IAMユーザーを作成してそのクレデンシャルを使用する。要TLS認証
ポート
25、465(SMTP over SSL)、587(Message Submission)
ユースケース
既存の送信用SMTPサーバからリレーしたり、SMTPを前提としてプログラムから直接利用する場合
送信制限
送信できるeメール数と送信レートを制限します。なお、送信制限の上限は特定の条件を満たすと緩和で来たりするので調べてみて下さい。
送信クォータ
- 24時間あたりに送信できるeメールの最大数
- eメールを送信しようとすると、その都度24時間以内に送信されたeメールの件数をチェックする。合計数が送信クォータ未満であれば、送信リクエストを受理して送信されます。
最大送信レート
- SESが1秒あたりにアカウントから受け付けるeメールの最大数
- 最大送信レートを瞬間的に超えることは可能だが、制限を超えた状態を長時間続けることは不可能
SES Dashboard
送信制限を確認できます。
送信制限に達した場合
スロットリングエラーが発生してEメールは破棄されます。その後、再度送信するには必要な送信クォータの量に増えるまで待つ必要がある。
SES HTTP REST APIで送信した場合
- Daily message quota exceeded
- Maximum sending rate exceeded
SMTPで送信した場合
- 454 Throttiling failure: Maximum sending rate exceeded
- 454 Throttiling failure: Daily message quota exceeded
アクセスレベル
サンドボックス(初期状態)
- 指定されたアドレスにのみ送信可能(Verify済みのemailアドレス)
- 小さな送信制限
- 200通/24時間
- 最大送信レート 1通/秒
プロダクション(サンドボックスの外)
- 送信先に制限なし
- 送信制限は実績によって決定
- 上限緩和申請をすることで、自動的にこちらに変更されます。
送信承認
異なるAWSアカウントまたはIAMユーザーから当該アカウントのドメインやeメールアドレスを使ってeメールを送信する権限を許可
送信承認の流れ
- eメール送信リクエストまたはeメールのヘッダでID(ドメインまたはeメールアドレス)のARNをSESへ渡す。
- IDのポリシーを確認し、承認されている場合はSESはeメールを受け入れる。未承認の場合はSESはエラーメッセージを返す。
ユースケース
- サードパーティ(eメールのマーケティング会社等)のeメールを自分が所有するドメインから送信する。
- 指定されたeメールアドレスからのみ送信を許可
- Return Pathに特定のeメールアドレスを指定した時のみ送信を許可
- 指定された期間のみ送信を許可
- Fromアドレスの表示名に特定のフレンドリ名が指定された時のみ送信を許可
Suppression List機能
ハードバウンスしたeメールアドレスが登録されるリスト
- 一度登録されると最大14日登録される。(手動削除可能)
- アカウントを超えて共有
- 登録済みアドレスに送信を試みた場合は、SESへのCallは成功するがSESから外部へは送信されずハードバウンスとして処理される。
役割
バウンスを起こし続けることで送信元ドメインやSESのIPアドレスプールの評判が落ちないよう保護(評判はバウンス率で決まりバウンス率が悪いとそのアドレスがシャットダウンされる可能性がある。)
コンテンツフィルタリング
- アプリからの送信リクエストを受けるとSESはメールメッセージを組み立てて(assemble)、ISPがスパムとみなされないか、HeaderとBodyをスキャンする。SESによりスパムと判断された場合はSES内の評価が低下する。
- ウイルスやマルウェアが含まれるメッセージを検出するとブロックし、これらが送信されるのを未然に防止
送信アクティビティのモニタリング
コンソール、API、CloudWatchでモニタリング可能です。
イベント
送信
SESに対する呼び出しの成功、あくまで呼び出しの成功であり配信の成功ではない。
拒否
メールの送信をしない。例えば、メールにウイルスが発見された場合はメール送信をしない。
バウンス
受け取り先のMTAから弾かれること。
苦情
eメールが受取人に受診されたが、受信者がスパムとしてマークした場合
配信
メールを正常に配信した場合
オープン
オープントラッキング
eメールの開封と内容に含まれるURLクリックに関するメトリクスを収集できます。eメール内の各メッセージに1ピクセル×1ピクセルの透明Gif画像ファイルへの固有リンク挿入され、どのメッセージが誰によって開かれたのか正確に知ることが可能。
クリック
クリックトラッキング
eメールの開封と内容に含まれるURLクリックに関するメトリクスを収集できます。eメール内の各リンクを固有のリダイレクトリンクに置換する。どの受信者がリンクをクリックしたのか及び、リンクに到達した電子メールを簡単に判断できます。
レンダリング失敗
eメールテンプレートとパーソナライズされたeメール機能
テンプレートを作成し、パーソナライズされたeメールを送信することが可能
- 件名及び本文セクションを受信者ごとにパーソナライズが可能です。
- アカウントごとに最大10000のeメールテンプレートを作成が可能です。
- 各テンプレートはテキストパートとHTMLパートを含め最大500KB
- SendBulkTemplatedEmailオペレーションの呼び出しごとに最大50個の送信先(CC/BCC含む)に送信可能
この記事へのコメントはありません。