• ベストアンサー

VS2005C#でメールを受信すると文字化け

VS2005C#でメールを受信するときに文字コードをiso-2022-jpで変換し、 大抵のメールはこれでOKなのですが、 たまに文字化けしてしまうメールがあります。 しかし普通のメーラーで見ると文字化けせずに見えます。 ヘッダにもiso-2022-jpと書かれています。 C#で受信したときに文字化けしてしまう理由は何かあるのでしょうか? バイトが欠損しているからでしょうか? (そうなら普通のメーラーでも文字化けすると思うのですが)

  • ENTRE
  • お礼率0% (16/2518)

質問者が選んだベストアンサー

  • ベストアンサー
noname#158371
noname#158371
回答No.1

メールを送信する側もC# で何か独自でプログラムを組んでいらっしゃいますか?もし送信する側もC#で作りこんでいるのであれば、 組み込み方、使っているライブラリ、.NET Frameworkによって 文字化けを引き起こすことがあります。 一応、この問題の解決策はいろいろと議論はされています。 http://bbs.wankuma.com/index.cgi?mode=al2&namber=9893&KLOG=23 --------------------------------------------------- ただし、送信側は別でやっていて受信側だけをC#で作りこんでいる中で 文字化けを引き起こしているのであれば、Encodingの処理が 正しく行われていない可能性があります。 もし、可能であればそのC#で作った受信側のソースコードを 補足情報にUPしていただけないでしょうか? 宜しくお願いします。

関連するQ&A

  • フォームメールを受信すると文字化けをします。

    携帯サイトにCGIフォーム(CGIの文字コードは全てshift_jis)を設置しています。 iMacや、iPatや、ThanderBirdで、受信をすると、すべて、文字化けします。 Macで、POPを返さない方が文字化けをしないと聞いたので、受信アドレスをgmailアドレスに変えましたら、Mac系では、文字化けがなくなりました。 が、同時に、普通のメールアドレスを設置し、ThanderBirdで受信をしましたら、やはり文字化けをします。 ThanderBirdのエンコード設定は、ISO-2022-JP となっていて、少し調べましたら 「インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。」とのこと。 半角カタカナなどは、含まれていないのですが、やはり、フォームメールを受け取りますと、文字化けをしてしまいます。 届いたメールは、タイトルは正しく表記され、中身が、文字化け。 メールのエンコードをShift-JISに変換すると、逆に、タイトルが文字化けし、本文(中身)が、正しく表記されます。 OUTLOOKなどWindowsの仕様のものを試していないのですが、 何かを修正すると、文字化けせずに、閲覧できるのか、もし、方法があれば、おおしえいただければと思いました。 使っていますCGIフォームは http://www.kurohama.net/c5.shtml 今は、Shift-JISですが、UTF-8に変換はできるようです。 どうぞ よろしくお願いいたします。

    • 締切済み
    • CGI
  • mailコマンドでは化けないSubjectがPOPで受信すると文字化け

    mailコマンドで、メールのタイトル一覧を表示した時には、Subjectは文字化けしていないのですが、 POP3でメーラ(WindowsのBecky)で受信すると Subjectが文字化けしてしまいます。 ヘッダ情報は以下のようになっています。 MIME-version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit 原因は何でしょうか?

  • 文字化けしてしまうんですが・・・

    C++BuilderでSMTPクライアントを作成しているのですがgooなどのWebブラウザを使うメーラーにメールを送信すると文字化けしてしまいます解決方を教えてください。 ちなみにSendStartでヘッダーのContent-Typeはtext/plain; charset=ISO-2022-JPになっています。 プログラミングをはじめて間もないので出来れば詳しい説明をお願いします。

  • 英語の受信メールが文字化けします

    gooのフリーメールを利用しています。 その友人とは何度かメール交換をしていて、今まで文字化けしたことがなかったのですが、突然本文が文字化けするようになりました。件名はちゃんと英語で表示されています。ヘッダの情報を一部載せます。 X-Mailer: Atlas Mailer 2.0 X-AOL-IP: 64.171.177.234 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: base64 base64では最後に“=”がつくと、あるサイトで見ました。そのとおり“=”がついています。 エンコードでヨーロッパ言語などを試してみましたが、うまくいきませんでした。今までは違うヘッダで送られてきてはいたのですが、 それは以下のようなはヘッダです。 Content-Type: multipart/alternative; boundary="part1_1e4.ee8fdd5.2c7d1b26_boundary" X-Mailer: 8.0 for Windows sub 910 とにかくなんとしてでも解読したいのんです。誰か教えてください!

  • メールの文字化け?

    CGIレスキューのフォームメールを使ってフォームの内容をメールする仕組みを作りました。 ほとんどの方は、文字化けをおこさずに受信できるのですが、1人だけですが文字化けをおこすという報告を受けました。 会社内の特殊なメーラーで読んでいるようですが、そのメーラーには文字コードなどの設定項目はありませんでした。 確かに文字化けするのですが、そこから他に文字化けしたメールを転送すると、受け取った方はちゃんと読むことができます。自分自身に化けたメールをそのまま転送した場合も、化けずにうまく受信できます。 メールサーバー ↓ ある人のメーラー(化けてしまう) ↓ 自分自身に転送する(今度はばけていない) という感じです。 どういった原因が考えられるでしょうか?

    • 締切済み
    • CGI
  • サンダーバードで受信するメールの中に決まって文字化けするものがあるので

    サンダーバードで受信するメールの中に決まって文字化けするものがあるのですが、 エンコードは通常ISO-2022-JPになっていますが Shift_JISで来るメールは エンコード変換すればみれます。ただプリントアウトすると文字化けのままで 印刷できなくてこまっています。 とりあえず別のメールソフトで一時的にプリントしたりしていますが、、 毎回かなり面倒です。うまく出すやり方ご存知の方おしえてください。。。m(_ _;)m

  • JavaMail特殊文字付本文が文字化けで困ってい

    現在JavaMail(Ver1.4)+JAVA 7を使用して、あるメール配信システムを 構築しています。仕様上特殊文字を使用しなければならないので、 受信メールに特殊文字付本文が文字化けで困っています JavaMailのバッチがIBMのUNIX系AIXサーバ(文字コードがCP943C) に置いて、起動する メール本文データがIBMのDB2(文字コードがCP943C)から取得し、 Stringのhonbun_DB変数にいれる。 メール送信の本文が String honbun = new String(honbun_DB.getBytes("ISO-2022-JP"),"ISO-2022-JP") msg.setText(honbun,"ISO-2022-JP"); メールのヘッダーが msg.setHeader("Content-Type", "text/plain; charset="+"ISO-2022-JP"); msg.setHeader("Content-Transfer-Encoding", "7bit"); 問題点: getBytesでISO-2022-JP範囲外文字(いわゆる機種依存文字)すべて?に 置き返されます。 送信メールに、(1)(株)といった機種依存文字、NEC拡張外字が入っている 場合、文字が化けます。 ネットで得た対策方法について、以下方法が試しました。 対策1: Javaの起動オプション-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP付ける こちらのオプションがoracle者のJVMの有効で、現在のシステムがIBMのJVMを使用して いるので、効かないです。 対策2: 本文がshift-jisにする手もありますが、APPLE社のMAC、iphone端末で、同様に 機種依存文字が化けます。 対策3: String honbun = new String(honbun_DB.getBytes("ISO-2022-JP"),"ISO-2022-JP") の代わりに、getBytes()使用せずに、独自のCP943Cの文字コードからISO-2022-JP の文字コードに変換するロジックを組むという提案(機種依存文字でも、getBytes()みたいの ?に置き換えではなく、JIS範囲コードに変換)もあった。品質の懸念があるため、採用難しいところ。 上記対策1,2、3以外の方法があれば、教えていただけると助かります。 例えば対策3の機種依存文字か、ISO-2022-JP範囲内文字か、すべてJISコードに変換できる ライブラリなど 長文となって申し訳ありません。

  • メールの文字化けについて

    現在ACCESS2000(WIN98)で BASP21を利用してメールを受信して メールの内容を解析してデータベース化しているのですが、 メール本文が部分的に文字化けしてしまうことがあります。 BASP21に漢字コードを変換する命令があったのですが どのコードもうまく変換されませんでした。 ちなみにそのメール本文を新しいメールに貼り付けて 自分宛に送信して解析したら文字化けが起こりませんでした。 このように部分的に文字化けする原因はどのようなことが考えられるのですか。 またこの文字化けを直す方法を教えてください。 宜しくお願いしますm(_ _)m

  • 私も受信メールが文字化けで読めません

    発信者のメールアドレス(の国名コード)と,ヘッダー部分に charset=gb2312 と書かれているところからみて,たぶん,中国からのメールだと思われるのですが,ひらがなカタカナと英数字部分は読めるのですが,漢字部分はおそらく文字化けなのでしょう。全く意味不明です。 当方,メールは事情により"Outlook Express"ではなく,Webメールとして受け取っていますので,どうやって文字コードの変換をしたらいいか分かりません。 メールをコピーしてWordやメモ帳などに取り込んでみましたが,それ以上の手が打てず解決できません。 初心者向けに分かりやすく教えてくださいませんか?

  • PEAR::Mailでエンコードの指定はどうすれば

     PEAR::Mailを使ったメールフォームを作りました。  一般的なUTF-8ではなく、事情があってISO-2022-JP-MSに変換して送ってるもんですから、メーラーによっては文字化けしてしまうようです。  で、メールのヘッダで文字コードを指定してやれば上手くいくみたいな話を教えていただきまして、その方法を探っております。  PHPで作ってるんですが、PHPに用意されてる関mail関数だと参考になるサイトが見つかるんですが、PEAR::Mailでのヘッダで指定する方法がいまいちみつからず、困っている次第です。  そもそもISO-2022-JP-MS自体が特殊なようで、これをこのまま指定しても良いものなのかとか。  shift-jisとして指定する?  その辺も含めてお分かりになる方、よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう