Tipsその他C++Builder2009とIndy10でメールを送信するC++Builder2009に付属のIndy10は、UnicodeString対応が不十分です。そのため日本語メールを送信するにはちょっとしたテクニックは必要になります。このTipsは以下のページを参考にさせていただきました。indy10でgmailを送信したい。2010以降をお使いの場合は、「C++Builder2010とIndy10でメールを送信する」をご覧ください。最初は簡単に英文のメールを送信する方法を紹介します。日本語メールを送信するには、次の処理が必要になります。メールのヘッダに文字コードを設定するメールの本文は文字コードをISO-2022-JPに変換するヘッダ中の日本語は文字コードをISO-2022-JPに変換して、Base64エンコードするIndyの各プロパティはUnicodeStringを受け取るため、文字コードをISO-2022-JPに変換したUnicodeStringを作成する関数を用意します。文字コードの変換にMECSUtilsを利用しています。body;}文字コードがISO-2022-JPの文字列をBase64エンコードする関数を用意します。"?=";}メールのヘッダに文字コードを設定します。日本語をBase64エンコードします。Base64Encode(L"メールの件名");メールの本文の文字コードをISO-2022-JPに変換します。ConvertJis(L"テストメールの本文");全体のコードは次のようになります。添付ファイルがある場合、メールはマルチパートになります。メールのヘッダと本文の設定が変わります。//ファイルの種類によって変更しますsmtp->Connect();smtp->Send(msg.get());smtp->Disconnect();SMTP認証を使用したメールの送信SMTP認証を使用してメールを送信するには、SSL関連のDLLが必要になります。次のページからファイルをダウンロードして展開し、「libeay32.dll」と「ssleay32.dll」を実行ファイル(exeファイル)と同じディレクトリに配置します。http://indy.fulgan.com/SSL/ソースコードには、SMTP認証の設定を追加します。e-mail.";smtp->Connect();smtp->Send(msg.get());smtp->Disconnect();Gmailを使ってメールを送信するGmailを使ってメールを送信する方法です。SMTP認証を使います。ポート番号に気をつけて下さい。std;」を省略しています。"MECSUtils.hpp"が必要です。詳細は「文字コードを変換する」をご覧下さい。Indyのヘッダは、ヘルプファイルを調べて下さい。"IdText.hpp"となります。文字コードを変換するバグ報告・問い合わせは山本(yamamoto@gesource.jp)までお願いします。