PHPで送信したメールがスパム判定された!

 

あるサーバーでPHPからmb_sendmailで送信したメールが宛て先のサーバーにスパムと判定されて拒否されてしまいました。

何とかならないかってことで、まずは拒否されたメールのヘッダーを見ると

message-ID:×××@localhost.localdomain
return-PATH:<空白>
received from abc@localhost.localdomain [外部IP]
         *******************************************
received from abc@localhost.localdomain [127.0.0.1]
         *******************************************

こんなアヤしいヘッダーじゃ誰が見てもスパマーですねw

また、そのサーバーはメールサーバーとしては稼働していないため、sendmailがインストールされたままの状態でした。
sendmailなんて使ったことないんで、とりあえずあちこちのサイトの記述を参考に設定することに。
なかなかヘッダー情報が直らないんで、設定を変えながらいろいろ試した結果、何とかヘッダー情報はまともになりました。

・・・と思ったら、今度は名前解決がうまくいかないようでPHPで送信ボタンを押してから完了画面になるまで1分以上かかるようになっちゃいました。

2日ほどかかっていろいろ試行錯誤した結果、以下の設定でやっとうまくいくようになりました。

※サーバーOS:fedora10
  ホスト名:aaa、ドメイン名:bbb.com として記述します。

●/etc/mail/sendmail.mcで以下を編集し、「m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf」
 でsendmail.cfに反映

/etc/mail/sendmail.mc
define(‘confDOMAIN_NAME’,’bbb.com’)dnl
MASQUERADE_AS(‘bbb.com’)dnl
EFATURE(masquerade_envelope)dnl
MASQUERADE_DOMAIN(aaa.bbb.com)dnl

ついでに送信者がrootでも設定が反映されるように下記をコメントアウト
(コンソールからrootでチェック用のテストメールを直接送信するため)
dnl # EXPOSED_USER(‘root’)dnl

●/etc/mail/service.switchファイルを新規作成してsendmailが名前解決に/etc/hostsを先に参照するように変更

/etc/mail/service.switch
hosts files dns       ← hostsとfilesの間はタブ送り

※service.switchファイルの場所はsendmail.cfで確認し、sendmail.cfの当該ヶ所のコメントアウトを外したんですが、sendmailを再起動して確認したらまたコメントアウトされてました。(まぁ、ちゃんと動いてるんでここは追及しない方向で。。w)

●sendmailが名前解決出来るように/etc/hostsを編集

/etc/hosts
127.0.0.1      aaa.bbb.com aaa localhost.localdomain localhost
192.168.1.100  aaa.bbb.com aaa  ← サーバーのIPアドレスを追記
123.456.78.901 aaa.bbb.com aaa  ← 外部IPアドレスを追記

ここまででだいぶイイ感じになったんですが、、
PHPで送信元アドレスを普段使ってる別のメールアドレスに設定しているため、
送信元:vic@ddd.net
return-PATH:apache@bbb.com
と送信元とreturn-PATHが違ってます。これもスパム判定の要因になります。

下記のように「mb_sendmail」の第5引数で「-f vic@ddd.net」を指定してreturn-PATHを設定すれば送信元と同じに出来ます。

mb_send_mail(“宛て先メールアドレス”, “メールタイトル”, “メール本文”, “from:vic@ddd.net”,” -f vic@ddd.net”);

が、今度はメールヘッダーに「X-Authentication-Warning」が付加され、これもスパム判定の要因になります。
そこで以下のファイルを編集します。

●「/etc/mail/trusted-users」に元々のreturn-PATHのユーザ名(WEBサーバーの実行ユーザ名)「apache」を追記

/etc/mail/trusted-users
apache

これでPHPのmb_sendmailの第5引数に’-f vic@ddd.net’ を設定しても「X-Authentication-Warning」は出なくなりました。

ここまでの設定でヘッダー情報はかなりスッキリしていると思うので、これでしばらく様子を見ることにします。

 

 

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Optionally add an image (JPEG only)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください