• 締切済み

MAPIコントロールでメール内容が文字化け?

Visual Basic Ver.6 で、MAPIセッションコントロールとMAPIメッセー ジコントロールを使って、Outlook Express 5 の受信トレイにある メッセージにアクセスしようとしています。  メッセージの題名、差出人の名前は、日本語でもちゃんと表示される のですが、メッセージ内容は次のように文字化けしてしまします。 ・$B855$$=$&$G$9$M!*・(B  なお、テキストボックスは、プロパティで Multiline をtrue にし、 ScroolBar を 2-垂直 としてる以外は標準のまま使っています。  どうすれば良いかお教えください。  環境は、Windows98、Office2000シリーズです。また、プログラム は、「新Visual Basic入門シニア編 Ver.6.0対応(林晴比古著)」 p.176~p.177 に載っているものです。  あと、このプログラムでは、メッセージ総数を MAPIMessages1.MsgCount で、数えています。プログラムを走らせると、1度目はちゃんと数える のですが、プログラムを終了させてもう一度走らせると、メッセージ総数 が2と表示されます。Visual Basic自体を終了させて、もう一度起動し、 プログラムの読込からすると、1回目は、またちゃんと数えるのですが・・・  もし、よろしければ、この理由も教えてくだされば、ありがたく思います。

みんなの回答

  • x-game
  • ベストアンサー率42% (80/189)
回答No.1

こんにちは. Visual Basicで開発したことはないですが,以前メールソフトを作ったとき文字化けに悩まされた経験があります.文字化けの原因としては,JISコードとShift-JISコードの違いだと思います.メールの送信時にはShift-JISからJISに変換して送ります.受信するときにはJISからShift-JISに変換してメールを受信します.ということは,上記メッセージはJISコードのままと言うことです. 最初に記述したとおり,Visual Basicでの開発経験はないのでサンプルソースを書くことはできませんが,検索エンジン等で「VB Shift JIS 変換」等とキーワードを入力するとVBの専門家がいろいろと解決方法を記述してくれていますので参考にしてください.

参考URL:
http://www.kit.co.jp/vbit/QAndA06.htm
rabbitmoon
質問者

お礼

早速、参考URLを見て,これがVB Ver.6でも使えるか試してみようと思い ます。それにしても、メールの送信時にこのようなコードの変換が行われ ていたとは知りませんでした。勉強になりました。

関連するQ&A

  • UDLファイルの作成の仕方は?

    Visual Basic Ver.6で、ADOコントロールで、アクセスするには、データ リンクをエクスプローラで作成する必要があると、本に書いてあるのですが、 できません。  エクスプローラで、右クリックして、[新規作成]→ [Microsoft Data Link]を選べと、本に書いてありますが、私のコンピ ュータでは、その項目が出てきません。  どうすればいいのか教えてください。  環境は、Windows98、Office2000シリーズです。 なお、本は「新Visual Basic入門シニア編 Ver.6対応(林晴比古著)」(p.160)です。

  • spybot 1.5 Ver.up後・・・

    spybot1.4から1.5へVer.upしました。 Ver.up後Windows終了時に「プログラムの終了-SysFader」のメッセージが出ます。「すぐに終了(E)」で終了は可ですが、1.4使用時には出ていませんでした。解決方法がありましたらお教えください。尚、Spybotを一度も起動しない時はメッセージは出ません。 WinXP Sp.2 IE6.0

  • VisualC++2010Expressでのエラー

    Visual C++ 2010 Expressでエラーもなく、正常にビルドされたプログラムを終了した時に出力ウィンドウに 「テストプログラム.exe の 0x6b6b4444 で初回の例外が発生しました: 0xC0000005: 場所 0x00256a40 を読み込み中にアクセス違反が発生しました。 プログラム '[6396] テストプログラム.exe: ネイティブ' はコード 0 (0x0) で終了しました。」 というメッセージが表示されるのですが1行目にあるメッセージの意味がよく分かりません。プログラムそのものは途中で止まることなく動いています。 すべてのプログラムでこのメッセージは表示されます(Visual C++ 2010 Expressが自動生成したコードだけのプログラムでも)。 原因はウィルスチェックソフトが起動していることだというところまではわかったのですがアクセス違反を起こしたのはVisual C++ 2010 Expressの方なのかウィルスチェックソフトの方なのかよく分かりません。 それを調べる方法はないのでしょうか? また、このメッセージを無視して実行し続けていたら何か問題が発生することはあるのでしょうか? --- 実行環境 --- Microsoft Visual C++ 2010 Express WIN32 ユニコードビルド C++

  • デバッグしますか?というエラーメッセージ

    Microsoft Visual Studio 2005を入れてからなんですが、 他のプログラムを利用しているときたまに、 「ハンドルされていないWIN32の例外が発生しました」とメッセージが出て、 「利用可能なデバッガ」とでてそこの選択欄に「Microsoft Visual Studio 2005」 があります。 「選択したデバッガをデバッグしますか?」という項目で「はい」を選ぶと Microsoft Visual Studio 2005が立ち上がり、「いいえ」を選ぶと そのプログラムが強制終了します。 これは、なんでしょうか??困っています。

  • 特定の文字(言葉)を入力すると落ちる

    質問がここでいいのかわからないのですが、とても困っています。 ATOK12を使って入力しているのですが 昨日から突然、ある文字を入力するとエラーになって 使っているプログラムが終了してしまいます。 メール・IEなどすべてで同じことになります。 「い」とか「いえ」とか「いく」を入力して変換キーを押すと エラーが発生したため msimn.exe を終了します。 プログラムをもう一度開始する必要があります。 エラーログを作成しています。(メールの場合) というメッセージがでて終了してしまいます。 原因がさっぱりわかりません。 今まではなんともありませんでした。 ATOKが古くていかれちゃったんでしょうか? 新たに買って入れなおしても同じことにならないか心配です。 できれば買わずに直したいのですが・・・ どなたか助けてください!!(涙

  • VisualBasicを学習するに当たって

    会社でVisual Basic.NET 2003で開発することになったのですが、 これまで、プログラムミングを扱った事がありませんので、 初歩の初歩から学べる書籍を探しています。 Amazon等で調べては見たのですが、評価が高い本は VB6や.NET2002のものが多く、.NET2003を学ぶ上で 非常に役立つ書籍の存在があまりないように感じました。 たとえば、本A→本B→本Cなどの流れを進めば プログラムスキルが上達するなどの情報があれば是非教えてください。 会社の同僚に相談しても、付属のヘルプが最高の参考書といいますが、 これまた難解すぎて理解できません。 ちなみに、林 晴比古著の新Visual Basic.NET入門 ビギナー編 2003対応版を 購入しようと考えていますが、評判があまりよくないので悩んでいます。 自分でもいろいろ調べては見ましたが、なかなかいい本に めぐり合えませんでした。 やる気はありますので、ご回答よろしくお願いします。

  • メールの内容が文字化けします・・・

    <? function sendmail($to,$from,$from_name,$title,$message){ /* EUCコードへのエンコーディング */ $to = mb_convert_encoding($to , "EUC-JP","EUC-JP,UTF-8,SHIFT-JIS,ASCII,JIS"); $from = mb_convert_encoding($from , "EUC-JP","EUC-JP,UTF-8,SHIFT-JIS,ASCII,JIS"); $title = mb_convert_encoding($title , "EUC-JP","EUC-JP,UTF-8,SHIFT-JIS,ASCII,JIS"); $message = mb_convert_encoding($message , "EUC-JP","EUC-JP,UTF-8,SHIFT-JIS,ASCII,JIS"); /* 改行コード変換(CR+LFへ変換) */ $to = ereg_replace("\r", "", $to); $to = ereg_replace("\n", "\r\n", $to); $from = ereg_replace("\r", "", $from); $from = ereg_replace("\n", "\r\n", $from); $from_name = ereg_replace("\r", "", $from_name); $from_name = ereg_replace("\n", "\r\n", $from_name); $title = ereg_replace("\r", "", $title); $title = ereg_replace("\n", "\r\n", $title); $message = ereg_replace("\r", "", $message); $message = ereg_replace("\n", "\r\n", $message); /* メールヘッダ生成 */ $header = "From: ".$from_name." <".$from.">\n"; $header .= "Reply-To: ".$from_name." <".$from.">\n"; /* メール本文生成 */ $message = mb_convert_kana($message,"KV"); /* 送信メッセージ言語設定 */ mb_language("Japanese"); /* メール送信処理 */ $rcd = mb_send_mail($to,$title,$message,$header); return $rcd; } ?> 何が原因か分からないのです・・・。 教えていただければ嬉しいですm(__)m

    • ベストアンサー
    • PHP
  • メールが・・・

    AとB二台のPCで同じメールアドレスを使用しています。 AのPCからCのPCに添付ファイルを送ったのですが、エラーで帰ってきました。 AのPCでは、エラーメールを削除できたのですが、BのPCでは、エラーメールを削除することも、他のメールを見ることもできなくなりました。(フリーズ状態) メールソフトを終了しようとすると、「このプログラムは応答してません」とメッセージが出ます。 何が原因でしょうか?

  • outlook2003のマクロに関するメッセージ

    初めて質問させて頂きます。 Outlook2003を起動すると 「"C:\Program Files\Microsoft Office\OFFICE11\STARTUP\Annotate.dot"はマクロを含んでいます。」 というメッセージが毎回出てきます。 ここで「マクロを無効にする」を選んでoutlookを終了するとMicrosoft Visual Basicの「このプロジェクトのマクロは無効に設定されています…」というメッセージボックスが出てきます。 OKを押すと無事に終了します。 また「マクロを有効にする」を選ぶと、終了時にこのようなメッセージは出てきません。 私はマクロのマの字も分からず、visual basicの知識もゼロです。 毎回メッセージが出てきて少し煩わしいのと、ウィルスの心配もありますので、是非解決したいと思っています。 分かりやすくstep by stepでご回答頂けると幸いです。 宜しくお願い致します。

  • OE6 を規定に設定できなくなった

    Outlook Express6 を標準のMAPIクライアントに設定できなくなりました。 インターネットエクスプローラから「インターネットオプション」>「プログラム」>「電子メール」の欄にはOutlook Express が項目になく、 Outlook Express の「ツール」>「オプション」>「全般」>「規定のメッセージプログラム」で、 このアプリケーションを規定のメールハンドラに設定しようとしても、OK を押して、 もう一度「ツール」>「オプション」>「全般」>「規定のメッセージプログラム」と確認してみると、 Outlook Express が規定に選ばれていません。 原因の予想としては、OfficeOutlook を一度入れてしまったこと(アンインストール済み) だと思っています。 何かご存知の方、アドバイスをお願いいたします。