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で質問しましょう!
似たような質問が見つかりました
- その他(メールソフト・メールサービス) outlookからの送信された件名が文字化けします 2 2023/04/18 14:29
- 固定電話・IP電話・FAX FAXの送受信について 2 2023/06/03 06:46
- その他(メールソフト・メールサービス) Gメールについて質問 6 2023/06/14 18:02
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(メールソフト・メールサービス) メールアドレスに大文字を含んだメールの仕分けができない。 1 2022/04/28 12:02
- au(KDDI) iPhoneSEを使用しています。ショートメールを使用していて入力中に70と表示されるのは70文字ま 1 2022/11/28 23:36
- Excel(エクセル) エクセルに代わる 表入力ツールについて 3 2022/12/21 21:19
- その他(メールソフト・メールサービス) Windowsパスワード入力 職場のパソコンがWindowsなのですが、メールを送る際に自分のメール 1 2022/07/04 21:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでメールを送る時のSMT...
-
メールアドレスのみを抜き出す方法
-
SendMailがエラーを返さない
-
数千人分のユーザIDを各メール...
-
powerbuilderのメール機能について
-
VB6にてメールを送信する方法
-
PHP メールファーム 自動返信...
-
コマンドプロンプトで添付ファ...
-
問い合わせ完了ページでの二重...
-
タイマー機能を使って指定時間...
-
自動で添付メールを送信するフ...
-
メールアドレスを追加して、他...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
リンク先を隠す方法はないでし...
-
copy() で属性保存
-
onedrive にexcelファイルをア...
-
PHP session_destroyとsession...
-
「クラス関数」「メンバ関数」...
-
別PHPファイルに変数を渡す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードプレス、Contact Form 7...
-
VB6にてメールを送信する方法
-
存在しないメールアドレスかど...
-
コマンドプロンプトで添付ファ...
-
VBでメールを送る時のSMT...
-
問い合わせ完了ページでの二重...
-
送信日時を指定してメールを送...
-
一定時間毎に同じ動作を繰り返...
-
HPの更新をしたら自動でメール...
-
メールアドレスの存在確認はで...
-
$_SERVER{'HTTP_X_UP_SUBNO'}取...
-
mail関数を使うと遅いので
-
Bookを閉じて保存した時のみ実...
-
二重投稿防止方法
-
ブラウザの更新ボタン
-
mb_send_mail関数により送信さ...
-
javamailで220の応答が遅い
-
AccessのDoCmd.SendObjectについて
-
リファラが取得できない?
-
<HTML>~入る タグ が無いから ...
おすすめ情報