Amazon EC2のサーバからメール送信をするまでにやるべきこと (スパムメール扱いを回避する!) (original) (raw)

先日のデブサミ2010でも話した(デブサミ2010の資料"クラウドサービスAmazon EC2を活用した「SKIPaaS」構築事例"を公開します+α)のですが、Amazon EC2のサーバからメールを送信すると、一部分の宛先(メールサーバ)では、迷惑メール(SPAM)扱いされ、突き返されちゃう事があります。

それをどう解決したかという話。
Twitterを見ていて、まだきちんとした情報がまとまっていない気がしたので、経験談をまとめてみます。

課題

Amazon EC2のサーバがスパムメール送信に利用されるケースが増えているようで、Amazon EC2で利用されているIPアドレスのレンジ(ネットワーク)が、スパムメールのブラックリストにまるっと載ってしまっているため、メールサーバによっては、門前払いによる受信拒否となるケースがあります。

配送メールがSPAM扱いされないために最低限やること

基本的なことのみで、足りていない可能性もありますが、主に以下の3点を実施したところ、突き返されることなくキレイに送信できるようになりました。

SPFの設定

"SPF"が何かや設定方法については、以下のエントリがかなり詳しいため、そちらをお読みください。

つまりは、

SPF(Sender Policy Framework)とは、メールを送出したMTAが正当なMTAであることを証明するための技術だ。

今すぐSPFを書こう

ということで、Fromが、"@example.com"のメールは、"xxx.xxx.xxx.xxx"から送信されているものが本物でっせ〜という証明をドメイン所有者がDNS設定(TXTレコード)で行うというもの。

DNSの設定は、以下のような感じで行います。

IN TXT "v=spf1 +ip4:... -all"

SPAMメールのブラックリストに対する解除申請

Spamhausとmaps(mail-abuse.com)で管理されているスパムメール送信元を管理するブラックリストにAmazon EC2で使われているIPアドレスが部分的に登録されていることにより、以下ブラックリストでのチェックを行っているメールサーバから拒否される現象への対策として、ブラックリストから解除申請を行います。

まず、以下のURLから利用しているEC2のサーバのIPアドレスがブラックリストに含まれているかを確認します。

その後、解除申請の手続きを行うことになると思いますが、問題ないIPアドレスを証明する手段として、先ほど書いた通り、DNSの逆引きと正引きの結果を一致させておく必要がありそうです。

私の対処経験からの流れを書いておくと、、、

それでも突き返された場合は・・・?

私は、SMTPのサービスとして、よくPostfixを利用していますが、Postfixでは、"fallback_relay"という機能があり、何らかの理由でメール配送が失敗したときに、配送を代替してもらうサーバを指定できるものです。

利用しているメール(ドメイン)をGoogle Appsで管理している場合などは、GmailのSMTPサービスを利用できるため、そちらへフォールバックリレーを行ってもらうことで、EC2サーバ自前SMTPサービスからの送信で失敗したものは、Gmail経由で送信する、といった手法を取ることも可能です。

ちなみに、その場合のSFPの設定は以下のような感じです。

IN TXT "v=spf1 +ip4:xxx.xxx.xxx.xxx include:aspmx.googlemail.com ~all"