彩票走势图

电子邮件处理类库Aspose.Email功能示例解析:使用C ++发送Outlook电子邮件

翻译|使用教程|编辑:李显亮|2020-08-12 10:17:15.810|阅读 391 次

概述:在本文中,将学习如何在C ++应用程序中发送Outlook电子邮件。电子邮件可以在运行时创建,也可以从已保存的电子邮件文件(例如.msg,.emlx或其他文件)加载。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

如今,电子邮件自动化非常流行,它可以从Web或桌面应用程序内部自动生成和发送电子邮件。它用于发送重要的通知,文档,新闻通讯和各种其他消息。为了开发自动化的电子邮件系统,Aspose通过其电子邮件API – Aspose.Email方便了开发人员。

Aspose.Email for C ++是一种电子邮件编程API,使开发人员可以更轻松地使用多种格式,例如MSG,EML,EMLX和MHT。应用程序开发人员可以在本机C ++应用程序中创建,转换或处理最常用的消息格式,而无需依赖Office Automation或Microsoft Outlook应用程序。

上一篇文章中,您已经了解了如何使用C ++ 以编程方式创建MS Outlook电子邮件,包括MSG,EML和EMLX。在本文中,您将学习如何在C ++应用程序中发送Outlook电子邮件。电子邮件可以在运行时创建,也可以从已保存的电子邮件文件(例如.msg,.emlx或其他文件)加载。

  • 使用C ++创建Outlook电子邮件
  • 使用C ++使用HTML正文创建Outlook电子邮件
  • 使用C ++设置Outlook电子邮件的编码
  • 使用C ++将Outlook邮件另存为草稿

点击下载最新版Aspose.Email for C ++

使用C ++发送Outlook电子邮件

以下是使用Aspose.Email for C ++通过SMTP客户端发送Outlook电子邮件的步骤。

  • 创建一个Outlook电子邮件或使用MailMessage 类从文件中加载它。
  • 创建一个SmtpClient对象。
  • 设置主机,用户名,密码和端口号。
  • 设置安全选项。
  • 使用SmtpClient-> Send()方法发送电子邮件。

下面的代码示例演示如何使用C ++发送Outlook电子邮件。

// Create a new instance of MailMessage class
System::SharedPtrmessage = System::MakeObject();
System::SharedPtrclient = System::MakeObject();

// Set subject of the message, Html body and sender information
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"This line is in bold. ") + u"This line is in blue color");
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// Add TO recipients and Add CC recipients
message->get_To()->Add(System::MakeObject(L"to1@domain.com", L"Recipient 1", false));
message->get_To()->Add(System::MakeObject(L"to2@domain.com", L"Recipient 2", false));
message->get_CC()->Add(System::MakeObject(L"cc1@domain.com", L"Recipient 3", false));

// Specify your mailing host server, Username, Password, Port # and Security option
client->set_Host(u"mail.server.com");
client->set_Username(u"username");
client->set_Password(u"password");
client->set_Port(587);
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::SSLExplicit);

try
{
	// Send this message
	client->Send(message);
}
catch (System::Exception& ex)
{

}

使用C ++发送具有备用视图的Outlook电子邮件

还可以指定电子邮件的备用视图,以创建其他格式的邮件副本。例如,如果您的消息是HTML格式,则可以创建一个包含纯文本的备用视图。为了创建备用视图,可以使用MailMessage-> get_AlternateViews()-> Add(AlternateView :: CreateAlternateViewFromString(u” text”))方法。

下面的代码示例演示如何使用C ++发送具有备用视图的电子邮件。

// Create an instance of MailMessage class
System::SharedPtrmessage = System::MakeObject();

// From and To field
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");

System::SharedPtralternate;

// Create an instance of AlternateView to view an email message using the content specified in the string
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");

// Add alternate text
message->get_AlternateViews()->Add(alternate);

// Create an instance of SmtpClient Class
System::SharedPtrclient = System::MakeObject();

// Specify your mailing host server, user name, mail password and Port #
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
	// Client->Send will send this message
	client->Send(message);
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
} 

使用C ++发送批量电子邮件

在某些情况下,您需要一次发送大量电子邮件。对于这种情况,Aspose.Email for C ++提供MailMessageCollection类来封装多封电子邮件。以下是发送大量电子邮件的步骤。

  • 使用MailMessage类创建或加载电子邮件。
  • 创建MailMessageCollection类的对象。
  • 使用MailMessageCollection-> add()方法将电子邮件添加到集合中。
  • 创建SmtpClient类的对象。
  • 使用SmtpClient-> Send(MailMessageCollection)方法发送批量电子邮件。

下面的代码示例演示如何使用C ++发送大量电子邮件。

// Create SmtpClient as client and specify server, port, user name and password
System::SharedPtrclient = System::MakeObject(u"mail.server.com", 25, u"Username", u"Password");

// Create instances of MailMessage class and Specify To, From, Subject and Message
System::SharedPtrmessage1 = System::MakeObject(u"msg1@from.com", u"msg1@to.com", u"Subject1", u"message1, how are you?");
System::SharedPtrmessage2 = System::MakeObject(u"msg1@from.com", u"msg2@to.com", u"Subject2", u"message2, how are you?");
System::SharedPtrmessage3 = System::MakeObject(u"msg1@from.com", u"msg3@to.com", u"Subject3", u"message3, how are you?");

// Create an instance of MailMessageCollection class
System::SharedPtrmanyMsg = System::MakeObject();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);

// Bulk send
try
{
	// Send Messages
	client->Send(manyMsg); 
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
} 

使用C ++以TNEF格式发送电子邮件

MS Outlook使用传输中性封装格式(TNEF)发送具有RTF正文的电子邮件。在这种情况下,将从电子邮件中提取格式并将其编码为TNEF。在接收端,如果客户端支持TNEF,则它将汇编纯文本和TNEF附件以创建RTF电子邮件。否则,电子邮件将显示为纯文本。为了将电子邮件作为TNEF发送,您可以使用SmtpClient-> set_UseTnef(bool)方法。

下面的代码示例演示如何使用C ++将Outlook电子邮件作为TNEF发送。

try
{
// Email file path
System::String emlFileName = u"Message.eml";
// A TNEF Email

// Load from eml
System::SharedPtreml1 = MailMessage::Load(emlFileName, System::MakeObject());
eml1->set_From(u"somename@gmail.com");
eml1->get_To()->Clear();
eml1->get_To()->Add(System::MakeObject(u"first.last@test.com"));
eml1->set_Subject(u"With PreserveTnef flag during loading");
eml1->set_Date(System::DateTime::get_Now());
System::SharedPtrclient = System::MakeObject(u"smtp.gmail.com", 587, u"somename", u"password");
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::Auto);
client->set_UseTnef(true);
// Use this flag to send as TNEF
client->Send(eml1); 
}
catch (System::Exception& ex)
{
// catch exception
}

还想要更多吗?您可以点击阅读
【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP