2012/03/28

mail header received の謎

メールサーバーのリレーを利用して、複数のメールサーバーを経由して大量にメールを送信するシステムを構築しました。まぁ、平たい話がスパムメールの送信環境ですが、送信元のサーバーを調べるとガッツリ私の名前が出てくるので、これはスパムに利用できませんwww
正しく設定されている事を確認するには、メールを送信してみてメールヘッダに記載されたreceivedの項目を見るのが一番手っ取り早いです。
そこでreceivedに記載されている情報に不思議な部分があったのでメモしました。



まずはじめに、環境の説明ですが、適当な図をかきましたので見てください。恥ずかしい・・・。


APサーバーから複数のSMTPサーバーを経由して外部へメールを送信する、おそらく大量にメールを捌く場合には一番手っ取り早い形ではないかと思います。
今回はMTAにpostfixを利用しました。SMTPサーバーには、postfixをインストールして、main.cfでAPサーバーをmynetworksにIPアドレスで追加しただけです。
APサーバーとSMTPサーバーは同じネットワークに属していませんが、APサーバーがバーチャルホストではない場合はセキュリティさえ守られていれば大丈夫ではないかと考えています。なので、APサーバーはサービスで独占してサーバーを使いたいところです。
SMTPサーバーはバーチャルホストでもVPSでも構いません。メールをリレーするならサーバーである必要すらありません。

上記のSMTPサーバーの設定が終わった時点でのメールヘッダは以下のような状態になっています。
Received: from abc.sakura.ne.jp (xxx.xxx.xxx.xxx)
by www.example.com with SMTP; XX Mar 2012 12:22:21 +0900
Received: from xxx.xxx.xxx.xxx (unknown [yyy.yyy.yyy.yyy])
by abc.sakura.ne.jp (Postfix) with ESMTP id XXX393E51A0
for <hoge@example.com>; Tue, XX Mar 2012 12:22:21 +0900 (JST)

ヘッダ内の情報は以下のとおりです。
abc.sakura.ne.jp
SMTPサーバーをレンタルしているさくらインターネットから割り当てられたホスト名
xxx.xxx.xxx.xxx
abc.sakura.ne.jpのIPアドレス
www.example.com
送信先のメールサーバー名
hoge@example.com
送信先のメールアドレス
yyy.yyy.yyy.yyy
APサーバーのIPアドレス

メールのリレー送信としてはこれでOKな内容ですが、例えばこれを何かのサービスに転用する場合、メールヘッダに「sakura.ne.jp」と入っているのはいかがなものか、という事です。
「気にすんなヨ」って感じですが、サービスとしての統一感を出すなら、サービスに利用しているドメインのサブドメインでも割り当ててみるのもいいかも知れません。
ですので、今回はウェブサービスで利用している「example.net」のサブドメイン「smtp.example.net」をSMTPサーバーに割り当ててみます。
サブドメインをネームサーバーのAレコードに登録し、再度テスト送信してみた結果が以下の通りです。
Received: from smtp.example.net (HELO abc.sakura.ne.jp) (xxx.xxx.xxx.xxx)
by www.example.com with SMTP; XX Mar 2012 18:13:50 +0900
Received: from xxx.xxx.xxx.xxx (unknown [yyy.yyy.yyy.yyy])
by abc.sakura.ne.jp (Postfix) with ESMTP id XXX283E51A0
for <hoge@example.com>; Tue, XX Mar 2012 18:13:50 +0900 (JST)

「smtp.example.net」というホスト名は表示されましたが、HELOの応答結果がsakura.ne.jpを返しているようです。
この謎の部分も変更する必要があります。
他に思い当たる節もないので、hostnameをsmtp.example.netに変更してみました。
Received: from smtp.example.net (xxx.xxx.xxx.xxx)
by www.example.com with SMTP; XX Mar 2012 18:15:47 +0900
Received: from xxx.xxx.xxx.xxx (unknown [yyy.yyy.yyy.yyy])
by smtp.example.net (Postfix) with ESMTP id XXX533E51A0
for <hoge@example.com>; Tue, XX Mar 2012 18:15:47 +0900 (JST)

「sakura.ne.jp」という文字は完全に無くせました。
DNSの情報とhostnameの情報を両方利用しているんですね。
IPアドレスで直接指定すれば、簡単に利用はできますが、こういうところまでこだわってみるのもいいんじゃないでしょうか。


0 件のコメント:

コメントを投稿