sendmailで送るメールを迷惑メールとならないようにするための2つの施策

しっかりとドメインを取得して、サーバを立ててsendmailでメールを送信、自前のsmtpでメールを送信しても迷惑メールになる。メールが届かない(>人<;)

しっかりとしたサービスで迷惑がられていないサービスであれば下記対策をすることで迷惑メールになる可能性を減らすことができます。

1.逆引き設定

IPアドレスからホスト名を引けるようにしますが、逆引きは必ずしも設定しなくても良いことから設定していないこともありますがしっかりと設定しておきましょう。gmailはこの逆引きの設定で迷惑メールに入らなくなることが多いです。

http://support.google.com/mail/bin/answer.py?hl=ja&ctx=mail&answer=1311182&authuser=1

また、重要なことにSPFでIPを指定した際のIP逆引きが必要にもなります。

bindの逆引きの設定の仕方はここでは割愛します。
http://www.atmarkit.co.jp/flinux/rensai/bind904/bind904b.html
などを参照してください。

2.SPFの設定

SPFはメールの送信元が信頼出来るものなのかどうかをDNSサーバのTXTレコードのspf1を参照することでその信頼性を上げるというものです。YahooのメールはこのSPFを設定することで迷惑メールになる確率が下がりました。

SPFの設定は
http://www.openspf.org/SPF_Record_Syntax
に詳細があるのですがTXレコードに下記のフォーマットで記述します。
サンプルにお使いください。

"v=spf1 a:example.com ~all"
"v=spf1 include:example.com ~all"
"v=spf1 include:example.com ip4:0.0.0.0 ~all"
"v=spf1 ip4:0.0.0.0 ~all"
"v=spf1 ip4:0.0.0.0 ip4:1.1.1.1 ~all"
"v=spf1 include:_spf.google.com ~all"

google appsはinclude:_spf.google.comで通ります。gmail.comはredirect=_spf.google.comとなっていますが、sendmailでのSPFであればincludeのほうが効率が良いみたいです。


bindでゾーンファイルでの記述は下記のようになります。

example.com 90 IN TXT "v=spf1 include:example.com ip4:0.0.0.0 ~all"

~allと-allの違いが結構重要になってきます。

"+"	Pass
"-"	Fail
"~"	SoftFail
"?"	Neutral

http://www.openspf.org/SPF_Record_Syntax
に詳細があります。mxレコードの指定など色々と方法がありますので参考にしてみてください。

その他

SPFチェックはここで出来ます。sendmailなど動かすサーバののIPアドレスと、そこから発信するメールアドレスを入力します。

http://www.sendmail.co.jp/sa/spfcheck.html

digコマンドでTXTレコード調査
$ dig -t TXT 
;; ANSWER SECTION:
hostname.  81609 IN  TXT "v=spf1 include:xxxxx ~all"