C++でOutlookメールを作成する

電子メールの自動化は、Webまたはデスクトップアプリケーション内から自動的に電子メールを生成および送信するために最近非常に人気があります。重要な通知、ドキュメント、ニュースレター、その他のさまざまなメッセージの送信に使用されています。自動化された電子メールシステムを開発するために、Asposeはその電子メールAPI(Aspose.Email)で開発者を支援します。今日は、Aspose.EmailのC++バリアントを取り上げ、C++を使用してOutlook電子メールを作成する方法を紹介します。

Outlook電子メールを作成するためのC++電子メールライブラリ

Aspose.Email for C++はネイティブC++ライブラリであり、MSOutlookやその他の一般的な電子メール形式の電子メールを作成して送信できます。また、カレンダー、タスク、連絡先などのOutlookオブジェクトを操作したり、既存の電子メールファイルを他の形式に変換したりすることもできます。完全なライブラリパッケージはここからダウンロードするか、NuGetを使用してC++アプリケーションにインストールできます。

C++を使用してOutlook電子メールを作成する

まず、簡単なメールメッセージを作成してMSG、EML、EMLXなどのメール形式で保存する方法を確認しましょう。以下は、Aspose.Email for C++を使用して電子メールメッセージを作成する手順です。

  • MailMessageクラスのインスタンスを作成します。
  • To、From、Bodyなどのメッセージのプロパティを設定します。
  • MailMessage->Save()メソッドを使用して電子メールメッセージを保存します。

次のコードサンプルは、C++を使用して特定の電子メール形式でOutlookメッセージを作成する方法を示しています。

// MailMessageクラスの新しいインスタンスを作成します
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// メッセージの件名、HTML本文、送信者情報を設定します
message->set_Subject(u"New message created by Aspose.Email for .NET"); 
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text."));
// TO受信者の追加とCC受信者の追加
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false));
message->get_To()->Add(System::MakeObject<MailAddress>(L"to2@domain.com", L"Recipient 2", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc2@domain.com", L"Recipient 4", false));

// メッセージをEML、EMLX、MSG形式で保存する
message->Save(u"CreateNewMailMessage_out.eml", SaveOptions::get_DefaultEml());
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode()); 

C++を使用してHTML本文でOutlook電子メールを作成する

前の例では、プレーンテキストの電子メールを作成しました。ただし、最近のほとんどの電子メールには、電子メールの内容を細かく表示するためのHTML本文が含まれています。このような場合、Aspose.Emailを構成し、電子メールのHTMLベースの本文を設定できます。これには、MailMessage->setHtmlBody(System::String)を使用して、HTMLコンテンツを渡します。次のコードサンプルは、C++を使用してHTML本文で電子メールを作成する方法を示しています。

// MailMessageクラスの新しいインスタンスを作成します
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// メッセージの件名、HTML本文、送信者情報を設定します
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_HtmlBody(System::String(u"<b>This line is in bold.</b> <br/> <br/>") + u"<font color=blue>This line is in blue color</font>");
// TO受信者の追加とCC受信者の追加
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false)); 

// メッセージをEML、EMLX、MSG形式で保存する 
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode()); 

C++を使用してOutlook電子メールのエンコーディングを設定する

Aspose.Email for C++では、エンコード標準を定義して、電子メール内の文字の処理方法についてブラウザーをガイドすることもできます。特定のエンコーディング標準を設定するには、MailMessage->setBodyEncoding(System::Text::Encoding)メソッドを使用できます。次のコードサンプルは、C++を使用して特定のエンコーディングで電子メールを作成する方法を示しています。

// MailMessageクラスの新しいインスタンスを作成します
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// メッセージの件名、HTML本文、送信者情報を設定します
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text."));
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// TO受信者の追加とCC受信者の追加
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false)); 

// メッセージをEML、EMLX、MSG形式で保存する
message->Save(u"CreateNewMailMessage_out.eml", SaveOptions::get_DefaultEml()); 
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode());

C++を使用してOutlookメッセージをドラフトとして保存する

新しく作成したOutlook電子メールメッセージを下書きとして保存することもできます。この操作を実行する手順は次のとおりです。

  • MailMessageオブジェクトを使用して、新しい電子メールを作成するか、既存の電子メールをロードします。
  • OutlookメールメッセージからMapiMessageオブジェクトを作成します。
  • MapiMessage->SetMessageFlags(Aspose::Email::Mapi::MapiMessageFlags)メソッドを使用して、電子メールメッセージをドラフトとして設定します。
  • Outlookの電子メールを保存します。

次のコードサンプルは、C++を使用して下書きとして電子メールを作成する方法を示しています。

// MailMessageクラスの新しいインスタンスを作成します
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// メッセージの件名、HTML本文、送信者情報を設定します
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This is a plain text.")); 
// TO受信者の追加とCC受信者の追加
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false)); 
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));

// MailMessageからタイプMapiMessageのインスタンスを作成し、メッセージフラグを未送信(ドラフトステータス)に設定して保存します
System::SharedPtr<MapiMessage> mapiMsg = MapiMessage::FromMailMessage(message);
mapiMsg->SetMessageFlags(Aspose::Email::Mapi::MapiMessageFlags::MSGFLAG_UNSENT);

// メッセージをEML、EMLX、MSGMHTML形式で保存する 
message->Save(u"CreateNewMailMessage_out.emlx", SaveOptions::CreateSaveOptions(MailMessageSaveType::get_EmlxFormat()));
message->Save(u"CreateNewMailMessage_out.msg", SaveOptions::get_DefaultMsgUnicode());

ライブデモ

結論

この記事では、C++アプリケーション内でOutlook電子メールを作成する方法を説明しました。 C++コードサンプルは、テキスト/ HTML本文または特定のエンコーディングを使用してMSG、EML、またはEMLX電子メールを作成する方法を示しました。 Aspose.Email for C++を使用して、Outlookの電子メールやその他のアイテムを処理する方法について詳細を調べることができます。

関連項目