2016年11月22日火曜日

IIS SMTPなんて嫌いだー! | ライタス株式会社

IISのSMTPで困ったことになっているので、解説がてら整理。


IISのSMTPは、Windowsを利用していれば、簡単に利用できるSMTPサーバーで、
結構利用されているケースが多いように感じています。
テストケースに使うにはもってこいですし。(なんで本番につかうのかなー)


というか、そもそもIIS SMTPなんか使うなというお叱りはごもっともだと思います。

のっぴきらない理由はお察しください。・゚・(ノ∀`)・゚・。


さて、今回の現象ですが、RFCに関わる部分なので、多少前提知識が必要です。


ここをお読みの方は、きっとハイエンドな方ばかりだと勝手に信じて話をすっ飛ばすと・・・

メールヘッダーにMessage-IDという項目があります。
Message-IDに関しては、ここのサイトが詳しい解説をしています。

http://www.emaillab.org/essay/message-id.html

この値は、インターネット的にユニークな値であることを保証される必要があるのですが、
IIS SMTPを使ってメールを出すと、条件によっては、重複したものが生成されるケースが
あるようです。

その条件は、よくわかっていないのですが、現象が起きている環境をちょこっとだけ書くと、
Windows Server 2003 R2 + IIS + ASP.NET 2.0で、メールをIIS SMTPに対して短い間隔で出す
と、現象が発生するようです。

IISのMessage-ID の形式は、

[サーバー名][よくわからない文字列9文字][8桁の数字(連番?)]@[DNSサフィックス]

のようですね。
重複するのは、[8桁の数字(連番?)]の部分が原因みたいで、
予想では、マルチスレッドで動作している場合に、同じIDが出ることがあるとか、
そんなんじゃないかなとおもいます。

ASP側で、Message-IDを生成して送るように設定したはずなのですが、
どうも、IIS側でMessage-IDを付け替えてくれているようです。


余計なことしやがって

親切なのはうれしいのですが、ちゃんと動いていないのが残念でなりません。

で、その対策を探しているのですが、なかなか見つかりません。
レジストリをいじってやれば、できるとかそういうのを期待したんですけど・・・

見つからないということは、世間にこんなことで、悩んでいる人はきっといないということで、
ちょっと安心(?)しました。


私はというと、他のMTAにSMTPすることで回避しました。
(最初からそうしろよっっていう話もありますが、こちらものっぴきらない事情がありまして・・・泣)


別件ですが、似たようなことでお怒りの方を発見・・・御参考までに
http://www.dreams.ne.jp/support/mail/messageid.html



ちなみに、調べて初めて知ったのですが、Windows 7には、IIS SMTPは付属していないみたいです。



本記事は、弊社代表のブログ記事なんでもIT屋の宿命からの記事を加筆修正したものです。

0 件のコメント:

コメントを投稿