2013年6月5日

サーバーから送られるメールがスパム判定をくらっちゃう時の対処法

サーバー構築をしてサービスを動かしはじめた時に多分誰もが詰まるコト…

サーバー上で動くWEBアプリケーションからメールを送ったところスパム判定されたとか、キャリアメールには届かないだとか。

photo credit: Alex.W via photopin cc

こういうコトは調べても、単語の意味が分からなくて、その単語を調べた結果出てきたページでまた謎の単語が!なんていうループはよくある。結局「ああなるほどね」ってなるまで結構時間がかかるんだけれど、実際は簡単。なのになぜこうもピンポイントの情報が少ないのだろうか。


環境をかなり絞るけど、こんなことを調べる人ならうまいことやるはず。
  • ドメイン管理はムームードメイン
  • サーバーはさくらVPS
  • メールサーバーはpostfix
  • postfixはWEBサーバーやアラート用の送信のみで利用
  • メールサーバーがあるサーバー内でWEBサーバーも動いてる
  • hogehoge.comとwww.hogehoge.comがWEB用にAレコードでVPSに向いてる
  • mail.hogehoge.comとmxレコードはGooleAppsに向いてる
この環境でWEBアプリケーションからメールを送ってもスパム判定を食らわないようにする時にやることは2つだけ。

メールサーバーにドメインをあててあげる

postfixは特に設定しないとドメインが「localdomain」とかになってる。
いくらメールのfromを偽装しても、localdomainなんていうありえないドメインから送られたメールというのがメールヘッダーについてきてしまう以上、スパム扱いになっちゃう。なので、postfixにメール用サブドメインをあててあげる。

ここでサブドメインをGoogleAppsに向いてしまっている「mail.hogehoge.com」にしちゃうとエライことになるので、sakura.hogehoge.comにしておくことにする。(さくらVPSだし。)

「エライこと」はまた今度ね。
実際やってみて、maillogを見てたら多分わかるはず。
やってみてる時はメール受信できなくなったりするけど。


postfixのpostfixの設定ファイル、main.cfに

myhostname = sakura.hogehoge.com
mydomain = hogehoge.com
myorigin = $myhostname


と書いてpostfix reloadで設定をロード。
なんだったらpostfix restartでもしといて。

ドメインの逆引き・正引きを設定する

この逆引き、正引きなんなのよっていうと、とどのつまり、
ドメインからIPを得るのが、正引き。
IPからドメインを得るのが、逆引き。

sakura.hogehoge.comをサーバーにむける(正引き)ために、ムームードメインのDNS設定でsakuraのAレコードをVPSのIPへ向ける。反映されるまでちょっと我慢してね。

逆引きは…ほんとは必要ないんじゃないかと思うところではあるけれど、こういうので対応する時って自分はお客さんのサーバーだったりすることが多いので、見た目な意味もありつつ、やっておく。さくらVPSのコンパネで逆引きドメインに「hogehoge.com」を設定。
これはさくらインターネットのヘルプ参照してくださいな。


ほーら、簡単。

SPFレコードは、GoogleAppsを利用していることもあってgoogleさんに向いているから
特に対応することはなし。


スパム判定を食らう時は、メールヘッダー内の送り元サーバーの所在がしれないから。その所在をはっきりするために、ヘッダーに記載されるドメインを明確にしてあげて、そのドメインはこのサーバーなんですよというのを疑心暗鬼なメールサーバーが調べても問題ないようにしてあげる。
封書が届いた時に、
送り主の住所が「東京都」なのに消印が「黄泉の国」とかになってたら
「え。なにそれこわい。」
ってなるじゃない?

それを解消してあげればたいがいは回避できる ハズ。
あとは受信側のメールサーバーのスパムポリシーやブラックリスト次第かな。

0 件のコメント:

コメントを投稿