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ランキング
-
AccessのDoCmd.SendObjectについて
-
存在しないメールアドレスかど...
-
UWSCにつきまして
-
submitボタンの二重送信について
-
【追加】ファイルを閉じてダイ...
-
if($mode == "insert"){ の書き...
-
mb_send_mailについて
-
コマンドプロンプトで添付ファ...
-
送信日時を指定してメールを送...
-
phpでアドレス形式をチェックす...
-
ループの中で mailItemObj.Disp...
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
トランザクションが原因?DBに...
-
フォントの色を変えるには?
-
現在位置より2つ上のディレク...
-
CFileDialogの最初のディレクト...
-
VBSの「MsgBox」について
-
HPを開くとダウンロードページ...
-
3つ以上の論理積は利用可能なの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6にてメールを送信する方法
-
存在しないメールアドレスかど...
-
AccessのDoCmd.SendObjectについて
-
VBでメールを送る時のSMT...
-
phpのmb_send_mailが迷惑メール...
-
Bookを閉じて保存した時のみ実...
-
コマンドプロンプトで添付ファ...
-
メールアドレスの存在確認はで...
-
Windowsサーバーでメール送信プ...
-
submitボタンの二重送信について
-
ループの中で mailItemObj.Disp...
-
powerbuilderのメール機能について
-
空メールの作り方教えて欲しい...
-
MAPI コンポーネントを使ったメ...
-
【エクセルVBA】メール送信前に...
-
★エクセルVBAでOutlookのメール...
-
SMTPサーバの指定なしでメ...
-
phpでメールを送信
-
メールアドレスを追加して、他...
-
【PHPでメルマガ配信したい!】...
おすすめ情報