スキップしてメイン コンテンツに移動

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アドレスで直接指定すれば、簡単に利用はできますが、こういうところまでこだわってみるのもいいんじゃないでしょうか。


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。