翻譯|使用教程|編輯:李顯亮|2020-08-12 10:17:15.810|閱讀 491 次
概述:在本文中,將學(xué)習(xí)如何在C ++應(yīng)用程序中發(fā)送Outlook電子郵件。電子郵件可以在運行時創(chuàng)建,也可以從已保存的電子郵件文件(例如.msg,.emlx或其他文件)加載。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
如今,電子郵件自動化非常流行,它可以從Web或桌面應(yīng)用程序內(nèi)部自動生成和發(fā)送電子郵件。它用于發(fā)送重要的通知,文檔,新聞通訊和各種其他消息。為了開發(fā)自動化的電子郵件系統(tǒng),Aspose通過其電子郵件API – Aspose.Email方便了開發(fā)人員。
Aspose.Email for C ++是一種電子郵件編程API,使開發(fā)人員可以更輕松地使用多種格式,例如MSG,EML,EMLX和MHT。應(yīng)用程序開發(fā)人員可以在本機C ++應(yīng)用程序中創(chuàng)建,轉(zhuǎn)換或處理最常用的消息格式,而無需依賴Office Automation或Microsoft Outlook應(yīng)用程序。
在上一篇文章中,您已經(jīng)了解了如何使用C ++ 以編程方式創(chuàng)建MS Outlook電子郵件,包括MSG,EML和EMLX。在本文中,您將學(xué)習(xí)如何在C ++應(yīng)用程序中發(fā)送Outlook電子郵件。電子郵件可以在運行時創(chuàng)建,也可以從已保存的電子郵件文件(例如.msg,.emlx或其他文件)加載。
以下是使用Aspose.Email for C ++通過SMTP客戶端發(fā)送Outlook電子郵件的步驟。
下面的代碼示例演示如何使用C ++發(fā)送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)
{
}
還可以指定電子郵件的備用視圖,以創(chuàng)建其他格式的郵件副本。例如,如果您的消息是HTML格式,則可以創(chuàng)建一個包含純文本的備用視圖。為了創(chuàng)建備用視圖,可以使用MailMessage-> get_AlternateViews()-> Add(AlternateView :: CreateAlternateViewFromString(u” text”))方法。
下面的代碼示例演示如何使用C ++發(fā)送具有備用視圖的電子郵件。
// 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)); }
在某些情況下,您需要一次發(fā)送大量電子郵件。對于這種情況,Aspose.Email for C ++提供MailMessageCollection類來封裝多封電子郵件。以下是發(fā)送大量電子郵件的步驟。
下面的代碼示例演示如何使用C ++發(fā)送大量電子郵件。
// 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)); }
MS Outlook使用傳輸中性封裝格式(TNEF)發(fā)送具有RTF正文的電子郵件。在這種情況下,將從電子郵件中提取格式并將其編碼為TNEF。在接收端,如果客戶端支持TNEF,則它將匯編純文本和TNEF附件以創(chuàng)建RTF電子郵件。否則,電子郵件將顯示為純文本。為了將電子郵件作為TNEF發(fā)送,您可以使用SmtpClient-> set_UseTnef(bool)方法。
下面的代碼示例演示如何使用C ++將Outlook電子郵件作為TNEF發(fā)送。
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 }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn