現在携わっているプロジェクトが、大量のメールを捌く必要のあるシステムだった。それで、Amazonの提供するAmazon SESを使うのか、SendGridを使うのかなどという話になったのだが、あまり知らない分野で、話がよく飲み込めなかったので、初心者なりに色々調べた、そのメモ。調べてみると奥が深い。
基本
一応こんなサイトを構築しているくらいなので、postfixで自分宛てにログメールを送るくらいのことはやっているが、メールサーバーの詳細についてはよく知らない。基本的な用語の知識がないと、記事を読んでもわけわからんので、まずそのへんを抑えるため、「メール配信に関する基礎用語|メールマーケティングのCuenote」の用語集に目を通すと、だいたい感じが掴めた。特にDKIMやSPFといった認証絡み、バウンス、レピュテーションなどの用語は、押さえておかないと関連の記事がまったく読めない。
あと他に関連する記事でよく見た用語を付け加えると、
- スロットリング…ISPによる一時的なメール受信制限
- IPウォームアップ…新しいIPアドレスで少しずつ配信量を増やしてレピュテーションを上げる(新IPで一気に送るとスパムと疑われる)
- snowshoeスパム…送信成功するまで送信元IPアドレスを変更するような行為
とか。
メールの難しさ
基本的な用語を抑えたうえで、たとえば「フレクトのクラウドBlog: Amazon SESとメール配信の難しさについて調べたこと」「SendGridとAmazon SESを比較してみる - Qiita」あたりの記事を読んでみると、メールサーバーを運用する難しさが垣間見える。Amazon SESとは、Amazonの提供するメール配信サービスのことで、文句なしに安くて信頼性が高いと評判である。さすがAmazon。が、コスト安と引き換えに、自分でしなければならないことも多いようだ。それを一つ一つ検討していくと、なるほど多少コストがかかっても、SendGridなどのメール配信サービス業者がある理由がなんとなくわかる。
具体的には、バウンスがあったアドレスはSuppression Listに載り、次からは再送されないわけだが、Listにあるアドレスに再度送信するリクエストがあった時、Send GridではDropイベントが起きるが、Amazon SESでは再度バウンス扱いなので、バウンス率が高まってしまうため、Amazon SESでは特にバウンス時の処理が重要だ、とか、指定ドメイン以外弾く設定のある日本のキャリアケータイ事情だと、リージョン毎にリストを共有するAmazon SESは具合が悪い、とかそういった事情があるらしい。
ただ、コストは確かにAmazon SESは安いみたい「メール配信クラウドサービス13個の価格比較グラフを作りました(SES/SendGrid/Mailgun...) - atskimura-memo」。ってかこの記事すごい。
総じて
メールの配信は、先ず単純にメールを捌くことがもちろん大事で、そのためにスケーラビリティを考慮する必要がある。まぁでもそれは、今時はどのサービスを使ってもつつがなくできそうな感じがする。それよりも、いかにしてスパマーではないですよということを客観的に証明するかが重要そうだ。そのために認証技術が発達し、構築がやや煩雑になった。そしてバウンス率、苦情率、レピュテーションといった具合に数値化して評価する仕組みが出来て、そしてその数値を問題ないラインに維持する運用が、どうも非常にたいへんそう。そのたいへんさを自分たちでどれだけ請け負えるか、が実際の運用を考えたときの問題か。印象としては、メールサーバーの運用について詳しくかつ時間を割ける人がいないのであれば、Amazon SESよりもSendGridのようなサービスを利用することを考えたほうが、バウンス処理といった工数の話だけではなく、サポートもあるので、良いのかな、と思った。
- メールを捌く…スケーラビリティ
- だいたいどこも対応
- スパマーだと思われないようにする
- バウンス率、苦情率の監視
- バウンス時の処理
- 配信リストをクリーンに保って運用
- バウンス率、苦情率の監視
- Amazon SESは確かに安いけど自分でやることも多い
そういえば、前の会社でメールサーバーをレンタルサーバーの昔のプランからG Suiteに乗り換えた時、さくらのメールボックスやらConoHaのアプリケーションサービスやらを試したら、迷惑メールに振り分けられたりしてたいへんだったなぁ。結局Googleさんにおまかせするのが一番という結論に至り、それは間違えていなかったと今も思う。スパムに間違われず送るには多くの地味なノウハウが必要で、かつ止まることが許されないメールサーバーの運用は、なるべく信頼できる外部のサービスを頼るのが、結局安いのかも。
まぁなんにせよ、すぐに始められるAmazon SESをまずいじってみるのが何かと良さそうだ。
参考
勉強させていただきました。
- メール配信に関する基礎用語|メールマーケティングのCuenote
- フレクトのクラウドBlog: Amazon SESとメール配信の難しさについて調べたこと
- SendGridとAmazon SESを比較してみる - Qiita
- スタートアップでのSaaS利用はユーザサポート体制で選ぶべき、あるいはSendGridのサポートが素晴... | サイタ 開発者ブログ
- メール配信クラウドサービス13個の価格比較グラフを作りました(SES/SendGrid/Mailgun...) - atskimura-memo
- ASCII.jp:SendGridユーザーが語る!メール大量配信のここが落とし穴 (1/3)
- ご利用ガイド | SendGrid
コメント