Skicka Outlook-e-post i C++

I föregående artikel har du sett hur du skapar MS Outlook-e-postmeddelanden inklusive MSG, EML och EMLX programmatiskt med C++. I det här inlägget kommer du att lära dig hur du skickar Outlook-e-postmeddelanden från C++-applikationer. E-postmeddelandena kan skapas på runtime eller laddas från redan sparade e-postfiler som .msg, .emlx eller etc.

Skicka e-post med C++ e-postbibliotek - Gratis nedladdning

Likaså i föregående inlägg, kommer vi att använda Aspose.Email for C++ för att skicka Outlook-e-postmeddelanden. Du kan ladda ner biblioteksfilerna från avsnittet Nedladdningar eller installera det med NuGet.

Skicka Outlook-e-post med C++

Följande är stegen för att skicka ett Outlook-e-postmeddelande med SMTP-klient med Aspose.Email för C++.

  • Skapa ett Outlook-e-postmeddelande eller ladda det från en fil med klassen MailMessage.
  • Skapa ett objekt av SmtpClient.
  • Ställ in värd, användarnamn, lösenord och portnummer.
  • Ställ in säkerhetsalternativ.
  • Skicka e-post med metoden SmtpClient->Send().

Följande kodexempel visar hur du skickar ett Outlook-e-postmeddelande med C++.

// Skapa en ny instans av klassen MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Ange ämne för meddelandet, HTML-text och avsändarinformation
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"<b>This line is in bold.</b> <br/> <br/>") + u"<font color=blue>This line is in blue color</font>");
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// Lägg till TO-mottagare och Lägg till CC-mottagare
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));

// Ange din e-postvärdserver, användarnamn, lösenord, portnr och säkerhetsalternativ
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
{
	// Skicka detta meddelande
	client->Send(message);
}
catch (System::Exception& ex)
{

}

C++ Skicka Outlook-e-postmeddelanden med alternativ vy

Du kan också ange en alternativ vy av e-postmeddelandet för att skapa en kopia av meddelandet i ett annat format. Om ditt meddelande till exempel är i HTML-format kan du skapa en alternativ vy med vanlig text. För att skapa en alternativ vy kan du använda metoden [MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")]]12.

Följande kodexempel visar hur man skickar ett e-postmeddelande med en alternativ vy med C++.

// Skapa en instans av klassen MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Från och till fält
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");

System::SharedPtr<AlternateView> alternate;

// Skapa en instans av AlternateView för att visa ett e-postmeddelande med innehållet som anges i strängen
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");

// Lägg till alternativ text
message->get_AlternateViews()->Add(alternate);

// Skapa en instans av SmtpClient Class
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Ange din e-postvärdserver, användarnamn, e-postlösenord och portnummer
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
	// Klient->Skicka skickar detta meddelande
	client->Send(message);
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

Skicka massmeddelanden med C++

Det kan vara fallet när du behöver skicka en massa e-postmeddelanden åt gången. I sådana fall tillhandahåller Aspose.Email for C++ klass MailMessageCollection för att kapsla in flera e-postmeddelanden. Följande är steg för att skicka huvuddelen av e-postmeddelanden.

  • Skapa eller ladda e-postmeddelanden med klassen MailMessage.
  • Skapa ett objekt av klassen MailMessageCollection.
  • Lägg till e-postmeddelanden till samlingen med metoden MailMessageCollection->add().
  • Skapa ett objekt av klassen SmtpClient.
  • Skicka massmeddelanden med metoden SmtpClient->Send(MailMessageCollection).

Följande kodexempel visar hur man skickar huvuddelen av e-postmeddelanden med C++.

// Skapa SmtpClient som klient och ange server, port, användarnamn och lösenord
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");

// Skapa instanser av klassen MailMessage och ange Till, Från, Ämne och Meddelande
System::SharedPtr<MailMessage> message1 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg1@to.com", u"Subject1", u"message1, how are you?");
System::SharedPtr<MailMessage> message2 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg2@to.com", u"Subject2", u"message2, how are you?");
System::SharedPtr<MailMessage> message3 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg3@to.com", u"Subject3", u"message3, how are you?");

// Skapa en instans av klassen MailMessageCollection
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);

// Mass skicka
try
{
	// Skicka meddelanden
	client->Send(manyMsg); 
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

C++ Skicka e-postmeddelanden som TNEF

MS Outlook använder Transport Neutral Encapsulation Format(TNEF) för att skicka e-postmeddelanden med RTF-kroppar. I det här fallet extraheras formateringen från e-postmeddelandet och det kodas som TNEF. Om klienten stöder TNEF i den mottagande delen, sammanställer den vanlig text och TNEF-bilagan för att skapa RTF-e-postmeddelandet. Annars visas e-postmeddelandet som vanlig text. För att skicka e-postmeddelanden som TNEF kan du använda metoden SmtpClient->setUseTnef(bool).

Följande kodexempel visar hur man skickar ett Outlook-e-postmeddelande som TNEF med C++.

try
{
// Sökväg till e-postfil
System::String emlFileName = u"Message.eml";
// Ett TNEF-e-postmeddelande

// Ladda från eml
System::SharedPtr<MailMessage> eml1 = MailMessage::Load(emlFileName, System::MakeObject<EmlLoadOptions>());
eml1->set_From(u"somename@gmail.com");
eml1->get_To()->Clear();
eml1->get_To()->Add(System::MakeObject<MailAddress>(u"first.last@test.com"));
eml1->set_Subject(u"With PreserveTnef flag during loading");
eml1->set_Date(System::DateTime::get_Now());
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"smtp.gmail.com", 587, u"somename", u"password");
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::Auto);
client->set_UseTnef(true);
// Använd denna flagga för att skicka som TNEF
client->Send(eml1); 
}
catch (System::Exception& ex)
{
// fånga undantag
}

Slutsats

I det här inlägget har du sett hur du skickar Outlook-e-post med C++. Dessutom har du lärt dig hur du skickar massmeddelanden, skickar e-postmeddelanden med en alternativ vy eller skickar e-postmeddelanden som TNEF inom C++-applikationer. Du kan utforska mer om Asposes C++ e-postbibliotek med hjälp av dokumentationen.

Se även