【Amazon SES】SESでメール送信する時に知っておきたい事

Amazon SES(以下、SES)は、メールサーバーにする事が出来ます。

SESに登録したドメインすれば、直接メールを送信することが可能なので、メールサーバーを用意する必要がありません。
(もちろん、要件によってはEC2でメールサーバーを構築したり、AWS以外のメールサービスも検討する必要があります)

aws.amazon.com

しかし、設定や運用に不備があるとサービスを停止される場合があります。

今回は、初めてSESでメールサーバーを運用したいと思った時に、 あらかじめ知っておくと情報を集めやすくなるような情報についてまとめます。

バウンスメール

bounce(跳ね返る)」意味のごとく、メールの配信に問題があり送り先にメッセージが届かず送り返されたメールの事です。
バウンスメールの送り先は、メールのFromに設定したアドレスではなく、それとは別に付与されているエンベロープFrom宛です。

www.onemarketing.jp

また、バウンスには2種類あります。

種類 概要 原因
ソフトバウンス 原因が一時 メールの容量、受け取り側のメールサーバーのダウンなど
ハードバウンス 原因が恒久 メールアドレスが違う、迷惑メール扱いされるなど

キャリアメール

契約している携帯電話のキャリアが提供するメールサービスの事です。 日本では下記のキャリアメールが存在します。

キャリア ドメイン
docomo docomo.co.jp
softbank i.softbank.jp
au au.com, ezweb.ne.jp

キャリアメールの受信設定

設定画面で迷惑フィルター機能等の受信設定を変えることで、送信元が不明であったり、問題があるメールを事前に除外する事が可能です。

(キャリア毎に細かい違いはあるかもしれませんが、)送信元の認証には受信したメールヘッダーの検証を行います。
ヘッダー情報からヘッダFrom(もしくはエンベロープFrom)を参照し、送信元のサーバーに問題がないか認証します。

SESとの相性

よく、SESではキャリアメール宛にメール送れないと言う話を耳にします。
その原因は、前述したメール受信設定設定です。

qiita.com

初期設定のSESからメールを送信した場合、送信ドメインの認証に必要な設定がされていません。
後述しますが、SPFレコードの設定をして認証できるようにしてあげる必要があります。

しかし、他の設定が原因の場合も考えられますので、プロジェクトの要件に合わなければ他の方法も検討するべきです。

www.slideshare.net

メールヘッダー

対策をする上で、受信元はメールヘッダーで判断しますのでどういった情報が入っているかも理解しておく必要があります。
biz.biglobe.ne.jp

送信に関していうと、ヘッダFromエンベローブFromについて理解する必要があります。

ヘッダFrom

メールの送信元アドレスです。
指定したアドレスからメールが送られたという事を示すために使います。

エンベロープFrom

バウンスメールの戻り先のアドレスです。
ヘッダFromとは違い、バウンスメールを処理するためのアドレスです。

メールサーバーについて

SMTP

「Simple Mail Transfer Protocol」の略で、メールを送信するためのプロトコルです。

https://wa3.i-3-i.info/word14.html

SPF

SPFとは「Sender Policy Framework」の略で、送信ドメイン認証の一つです。 メールが正しいサーバーから送信されているかをするために使用します。

sendgrid.kke.co.jp

SPFレコード

上記ドメイン認証をする場合、DNSにSPFレコードを設定する必要があります。

受信元のメールサーバー側ではSPFを用いた認証する場合、 送信したメールアドレスのSPFレコードでDNSに問い合わせします。

sendgrid.kke.co.jp

Amazon SESの場合

amazon.com」ドメインから送信されている事を確認できるように設定が必要です。
そのために、Route53からSPFレコードを追加する必要があります。

docs.aws.amazon.com

前述しましたが、
キャリアメールでは、デフォルト設定のままだと送信元の認証があります。
そこで関係してくるのが、設定したSPFレコードです。
SPFレコードを公開して認証できるようにする必要があるわけです。

SES関連

SESを使い始めると 運用をするにあたっては、特に下記を参照する事をお勧めします。

https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/e-faq.html

サンドボックスモード

SESでドメインを設定した場合に最初に設定されるモードで、 限定された環境でSESの機能を確認したり、初期設定をするための環境です。

送信先も限定されていて、次のアドレスにしかメールを送信できません。

  • SESの「Email Address」で認証を済ませたメールアドレス
  • シュミレートシナリオで設定されているメールアドレス
    例えば下記です。
    • 正常な配信:success@simulator.amazonses.com
    • バウンス:bounce@simulator.amazonses.com

サンドボックスの解除

サンドボックスモードでは様々な制限があります。

制限中は、不特定のメールアカウントに送信できません。
そのため、運用時には解除が必要です。

解除方法する場合は、別途、解除申請が必要になります。 

docs.aws.amazon.com

苦情

メールを受け取ったユーザーから、メールの受信をリクエストしていないのに受信した事を報告された事を言います。
例えば、Googleメールの迷惑メールを報告した場合が該当すると思われます。

f:id:nakahashi_h:20190731154016p:plain

苦情率

SESから送信したメールのうち、どのくらいのメールが苦情として処理されたかの割合です。

苦情率の閾値

この割合を0.1%以下に留めておく必要があります。
苦情率が0.5%を超えた場合は、サービス停止される可能性があります。

最良の結果を得るには、苦情率を 0.1% 未満に維持する必要があります。これより高い苦情率は、E メールの配信に影響する可能性があります。 苦情率が 0.1% を超えると、アカウントはレビュー対象になります。苦情率が 0.5% を超える場合は、高い苦情率の原因となった問題が解決するまで、以後の E メール送信を一時停止することがあります。
Amazon SES 送信のレビュープロセスに関するよくある質問より引用

尚、苦情率の計算は自力ではできません。

Q7.Amazon SES コンソールや GetSendStatistics API のメトリクスを使用して、自分で苦情率を計算できますか?
いいえ。その主な理由には、次の 2 つがあります。 (省略)

Amazon SES 送信のレビュープロセスに関するよくある質問より引用

苦情の受け取り方

苦情については、デフォルトで取得できません。
Amazon SNSで通知できるようにモニタリングする事が求められます。  

docs.aws.amazon.com

バウンス率

SESから送信したメールのうち、どのくらいのメールがバウンスメールになっているかの割合です。

バウンス率の閾値

この割合は5%に留める必要があります。
バウンス率が10%を超えた場合、サービスが停止する場合があります。

Q4.アカウントのレビューや、送信の一時停止の原因になりえるバウンス率は公開されていますか? 最良の結果を得るには、バウンス率を 2% 未満に維持する必要があります。これより高いバウンス率は、E メールの配信に影響する可能性があります。
バウンス率が 5% を超えると、アカウントはレビュー対象になります。 バウンス率が 10% を超える場合は、高いバウンス率の原因となった問題が解決するまで、以後の E メール送信を一時停止することがあります
Amazon SES 送信のレビュープロセスに関するよくある質問より引用

©︎2017-2018 WebSandBag