最新版indy10で受信メールタイトルが文字化けする

解決


RAD命  2012-01-31 10:57:09  No: 41517

元Delphi大好きことRAD命です。

環境は、WinXP、C++BuilderXE2スターターです。

以下のページを参考にして、メールソフトをC++Builderで作っているのですが、タイトルが文字化けします。
http://www.gesource.jp/programming/bcb/58.html

色々調べて変換等してみたのですが、駄目でした。
最新版Builderはユニコード、MemoやIndyはAnsiという事までは判ったのですが…。

因みに、本文は文字化けしていません。メールタイトルだけが文字化けしています。

以下コードです。

Memo1->Lines->Text = msg->Body->Text;
  msg->CharSet = 'read';
  msg->Encoding = meMIME;
 UTF8String utf8 = msg->Subject;
 AnsiString ansi = utf8; //自動的にUTF-8に変換
  Memo2->Lines->Text = ansi;

何が文字化けの原因なのでしょうか?
どなたかお教えいただけると助かります。
それではよろしくお願いしますm(__)m。


RAD命  2012-01-31 21:07:42  No: 41518

追記です。
Subjectのフォーマットは、  ?ISO-2022-JP?B?

Indyのヴァージョンは、10.5.8.0

です。

それではよろしくお願いしますm(__)m。


DEKO  2012-01-31 21:26:23  No: 41519

> MemoやIndyはAnsi
Memo も Indy も Unicode ですよ。

> 何が文字化けの原因なのでしょうか?

[Indy 10 を使って GMail を送受信するには? (Delphi 2009 以降)]
http://ht-deko.minim.ne.jp/tech040.html#tech076

TIdMessage.OnInitializeISO を処理し、
・Subject も Body も UTF-8 にする
・Subject も Body もトランスファエンコーディングに BASE64 を指定する
これをやってみて下さい。

先述のリンク先のコードは Delphi のものですが、
山本隆さんのブログには相当する C++Builder のコードがあります。
(ご提示頂いたサイトを運営されている方のブログです)

[C++Builder XEのIndy10のメール送信の動作がおかしい(Delphi XEのIndy10は問題ない)]
http://www.gesource.jp/weblog/?p=4507

最近、あっちこっちで文字コード関連の質問が多いようですが、
以下のリンク先にある資料を読みあされば大抵の事は解決すると思います。

[RAD Studio マイグレーションセンター]
http://www.embarcadero.com/jp/rad-in-action/migration-upgrade-center


RAD命  2012-02-01 06:51:38  No: 41520

DEKOさんありがとうございます、無事解決しました。

[C++Builder XEのIndy10のメール送信の動作がおかしい(Delphi XEのIndy10は問題ない)]

が、そのものずばりでした。
まだCBuilderに慣れてなく、色々四苦八苦しましたが、勉強にもなりました。

これで後は普通に組んでいくだけです。
今回も大変ありがとうございましたm(__)m。


DEKO  2012-02-01 07:57:24  No: 41521

スミマセン。メール送信ではなく、メール受信の話でしたね。
# OnInitializeISO の話は忘れて下さい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加