電子メールは、インターネットを介した主要なコミュニケーション手段です。アプリケーションにEMLおよびMSGファイルを読み取らせ、それらの内容をファイルに追加したり、その他の操作を実行したりするシナリオに遭遇する可能性があります。そのために、この記事ではC++を使用して電子メールメッセージを読み取る方法を説明します。
電子メールメッセージを読むためのC++API
Aspose.Email for C++は、Microsoft Outlookをインストールしなくても、電子メールを作成、操作、および送信するためのネイティブC++ライブラリです。 APIは、EMLおよびMSG電子メールファイルの読み取りもサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Email.Cpp
C++を使用して電子メールメッセージを読む
電子メールメッセージを読む手順は次のとおりです。
- MailMessageクラスを使用して電子メールファイルをロードします。
- MailMessage->get_From()、MailMessage->get_To()、MailMessage->get_Subject()、 MailMessage->get_Body()などのメソッド。
以下は、C++を使用して電子メールメッセージを読み取るためのサンプルコードです。
// EMLファイルをロードしてMailMessageインスタンスを作成します
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// 送信者情報を取得する
System::Console::WriteLine(u"From:");
System::Console::WriteLine(message->get_From());
// 受信者情報を取得する
System::Console::WriteLine(u"To:");
System::Console::WriteLine(message->get_To());
// 件名を取得
System::Console::WriteLine(u"Subject:");
System::Console::WriteLine(message->get_Subject());
// HTML本文を取得する
System::Console::WriteLine(u"HtmlBody:");
System::Console::WriteLine(message->get_HtmlBody());
// テキスト本文を取得する
System::Console::WriteLine(u"TextBody:");
System::Console::WriteLine(message->get_Body());
電子メールメッセージからヘッダー情報を抽出する
以下は、電子メールメッセージからヘッダー情報を抽出する手順です。
- MailMessageクラスを使用して電子メールファイルをロードします。
- MailMessage->get_Headers()->GetEnumerator()メソッドを使用してヘッダー列挙子を取得します。
- ヘッダーをループし、MailMessage->get_Headers()->Get(int32_t index)メソッドを使用してヘッダーを取得します。
以下は、C++を使用して電子メールメッセージからヘッダー情報を抽出するためのサンプルコードです。
// EMLファイルをロードしてMailMessageインスタンスを作成します
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// すべてのヘッダーを印刷します
int32_t index = 0;
{
auto header_enumerator = message->get_Headers()->GetEnumerator();
decltype(header_enumerator->get_Current()) header;
while (header_enumerator->MoveNext() && (header = header_enumerator->get_Current(), true))
{
System::Console::Write(header + u" - ");
System::Console::WriteLine(message->get_Headers()->Get(index++));
}
}
電子メールメッセージヘッダー値のデコード
以下は、電子メールメッセージのヘッダー値をデコードする手順です。
- MailMessageクラスを使用してメールファイルをロードします。
- MailMessage->get_Headers()->GetDecodedValue(System::String name)メソッドを使用して、ヘッダーの値をデコードします。
以下は、C++を使用して電子メールメッセージのヘッダー値をデコードするためのサンプルコードです。
// EMLファイルをロードしてMailMessageインスタンスを作成します
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// ヘッダーからデコードされた値を取得します
System::String decodedValue = message->get_Headers()->GetDecodedValue(u"Thread-Topic");
// 値を出力します
System::Console::WriteLine(decodedValue);
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
ライブデモ
結論
この記事では、C++を使用して電子メールメッセージを読み取る方法を学習しました。具体的には、メールの内容とヘッダー情報の読み方を学びました。 Aspose.Email for C++APIを使用してヘッダー値をデコードする方法も確認しました。 APIは、電子メールメッセージを読み取るだけでなく、電子メールを操作するためのより多くの機能を提供します。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。