
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
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
まずは違うメーラーを使ってメールを受信してみましょう。
(できれば何種類か違うものを使って)それでも文字化けするようならば、それ以前の問題と考えることが出来ます。
メーラーで差が出ないようならば、パケットキャプチャを使ってメールサーバからメールを受信する時とWebサーバからメールサーバにメールが送信される時のパケットを調べてみましょう。
送信時のパケット内容と受信時のパケット内容に差異があるようならば(メール本文を比較してみてください)メールサーバを変えて試してみてください。
パケット内容が送信時にすでにおかしければSmtpMailクラスのバグかプログラムに何か問題があると考えられますので見直してみてはいかがでしょうか?
ご回答、どうもありがとうございます。
また、お礼が大変遅くなり、誠に申し訳ございません。
ご指摘いただいた手順で調べてみようと思います。
問題の切分け方の参考になりました。
どうもありがとうございました。
No.1
- 回答日時:
DBにうまく書き込めていると言うことはhttp通信でクライアントからサーバにデータが送られてくるときには問題がないと言うことになります。
(入力データが1000文字を超えると言うことはmethod=postでサーバに送っているかと思いますのでBase64エンコードは関係ないかと思います。)
気になるのは改行コードがどのように入っているかです。
一行で998文字を超えてはならないことや改行がCRLFでなくてはいけないことがRFCで規定されています。
以下のURLに説明とサンプルがありますのでご参照ください。
また、メール送信に関する規定のRFC文書の日本語訳もいろいろなサイトに掲載されていますので一度検索することをお勧めします。
参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/017 …
ご回答、どうもありがとうございます。
また、お礼が大変遅くなり、申し訳ございません。
>一行で998文字を超えてはならないことや改行がCRLFでなくてはいけ
>ないことがRFCで規定されています。
メール送信に関する規定について、勉強してみます。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループの中で mailItemObj.Disp...
-
Bookを閉じて保存した時のみ実...
-
VBでメールを送る時のSMT...
-
UWSCにつきまして
-
basp21 Proでのメールの暗号化...
-
PowerAutomateDesktopでOutlook...
-
ハッスルサーバーで海外からWP...
-
Illustratorで文字と画像を流し...
-
RSSパースに使用する関数・ライ...
-
ファイルの遷移がうまく行われ...
-
VBAのコードを教えてください
-
図に示す階層構造で,現在のデ...
-
VBA 添付ファイルをつけてメー...
-
php ホームページ初心者 入力確...
-
さくらレンタルサーバーでPHPが...
-
コメント投稿
-
WORDPRESS カスタム投稿 カス...
-
著書の通りにXAMPPの設定をして...
-
Wordpressの条件で複数画像を表...
-
index.phpで外部PHPファイルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループの中で mailItemObj.Disp...
-
submitボタンの二重送信について
-
VB.NETでフリーメールアドレス...
-
タイマー機能を使って指定時間...
-
SendMailがエラーを返さない
-
VB6にてメールを送信する方法
-
SMTPサーバの指定なしでメ...
-
【エクセルVBA】メール送信前に...
-
コマンドプロンプトで添付ファ...
-
UWSCにつきまして
-
PHPでメール送信する際の送信数...
-
存在しないメールアドレスかど...
-
問い合わせ完了ページでの二重...
-
VBでメールを送る時のSMT...
-
メール送信 MAPIMessages.Send ...
-
phpでアドレス形式をチェックす...
-
mb_send_mailで複数宛てにtoで送信
-
SMTPメール送信で送信者名と送...
-
phpメールフォームから送信され...
-
Windowsサーバーでメール送信プ...
おすすめ情報