System.Net.Mail問題その1
2006/07/27
この文書はVisual Studio 2005(.NET2.0)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
.NET 1.xではSystem.Web.Mail名前空間配下のクラスでSMTPを実現できていました。
ただしこのSMTPはCDO MessageというCOMの実装をただ呼び出しているに過ぎませんでした。
このCDOはWindows 2000/XP以上にしか搭載されていないために、Windows 9x系では動かないという問題がありました。
このCDO確かに便利なのですが、少し動きに癖があります。
http://support.microsoft.com/kb/412833
75バイトを超えるメッセージを送ろうとすると、Quoted-Printableエンコードされてしまうのです。
日本語のメールメッセージはISO-2022-JPというエンコードで送るためにさらに事態は複雑です。もちろん75文字では有りません。
サーバでの状態監視などに利用する分にはまったく問題なく利用することは出来ますが、自由に入力された文字を配信する(掲示板の配信など)場合には非常に困りものです。
これらの問題もあり、.NET 2.0ではSystem.Net.Mail名前空間に新たに.NETネイティブで再実装されています。