在 C++ 中创建 Outlook 电子邮件

如今,电子邮件自动化非常流行,用于从 Web 或桌面应用程序中自动生成和发送电子邮件。它被用于发送重要的通知、文档、时事通讯和各种其他消息。为了开发自动化电子邮件系统,Aspose 使用其电子邮件 API - Aspose.Email 为开发人员提供便利。今天,我将学习 Aspose.Email 的 C++ 变体,并向您展示如何使用 C++ 创建 Outlook 电子邮件。

用于创建 Outlook 电子邮件的 C++ 电子邮件库

Aspose.Email for C++ 是一个原生 C++ 库,可让您创建和发送 MS Outlook 和其他流行电子邮件格式的电子邮件。它还允许您操作 Outlook 对象,例如日历、任务、联系人等,并将现有的电子邮件文件转换为其他格式。您可以从 此处 下载完整的库包,或使用 NuGet 将其安装在您的 C++ 应用程序中。

使用 C++ 创建 Outlook 电子邮件

首先,让我们看看如何创建一个简单的电子邮件消息并将其保存为 MSG、EML 和 EMLX 等电子邮件格式。以下是使用 Aspose.Email for C++ 创建电子邮件的步骤。

  • 创建 MailMessage 类的实例。
  • 设置邮件的属性,例如收件人、发件人和正文。
  • 使用 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."));
// 添加收件人和添加抄送收件人
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>");
// 添加收件人和添加抄送收件人
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());
// 添加收件人和添加抄送收件人
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 电子邮件保存为草稿。以下是执行此操作的步骤:

以下代码示例展示了如何使用 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->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、MSG MHTML 格式保存消息 
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 电子邮件和其他项目。

也可以看看