質問: ASP.NETでWebアプリケーションを開発しています。 Web上のフォームから入力された内容を、メール送信させたいのですが、メール送信自体はうまくいくのですが、受信した内容を見てみると、入力内容が全角450文字くらいを超えた時、なぜかそれ以降の入力内容が文字化けしていました。入力内容が約450文字未満の時は問題ありませんでした。 ちなみに、入力内容は、メール送信と同時にDBにも書き込んでいるのですが、DB上のデータは文字化けしていませんでした。よって、メール送信時に文字化けしているか、あるいは、受信するメーラーの設定の問題なのか、その他に原因があるのか、うまく切り分けができずに困っています。 メールの送信には、SmtpMailクラスのSend()メソッドを使っています。メーラーはBecky!を使用しています。フォームからの入力文字は1000文字程度を予定しています。 文字化けを回避する方法について、どなたかアドバイスいただけないでしょうか? なお、開発環境は以下のとおりです。 OS:Windows 2003 Server IIS:ver6.0 Microsoft .NET Framework SDK v1.1 よろしくお願いいたします。
回答: まずは違うメーラーを使ってメールを受信してみましょう。(できれば何種類か違うものを使って) それでも文字化けするようならば、それ以前の問題と考えることが出来ます。 メーラーで差が出ないようならば、パケットキャプチャを使ってメールサーバからメールを受信する時とWebサーバからメールサーバにメールが送信される時のパケットを調べてみましょう。 送信時のパケット内容と受信時のパケット内容に差異があるようならば(メール本文を比較してみてください)メールサーバを変えて試してみてください。 パケット内容が送信時にすでにおかしければSmtpMailクラスのバグかプログラムに何か問題があると考えられますので見直してみてはいかがでしょうか?