V předchozím článku jste viděli, jak vytvořit e-maily MS Outlook včetně MSG, EML a EMLX programově pomocí C++. V tomto příspěvku se dozvíte, jak odesílat e-maily Outlooku z aplikací C++. E-maily lze vytvořit za běhu nebo načíst z již uložených e-mailových souborů, jako jsou .msg, .emlx atd.
- E-mailová knihovna C++
- Odesílejte e-maily aplikace Outlook pomocí C++
- Odesílejte e-maily aplikace Outlook s alternativním zobrazením pomocí C++
- Vytvářejte a posílejte hromadné e-maily pomocí C++
- Odesílejte e-maily jako TNEF pomocí C++
Odesílejte e-maily pomocí e-mailové knihovny C++ – bezplatné stažení
Podobně jako předchozí příspěvek použijeme Aspose.Email for C++ k odesílání e-mailů z aplikace Outlook. Soubory knihovny si můžete stáhnout ze sekce Downloads nebo je nainstalovat pomocí NuGet.
Odesílejte e-maily aplikace Outlook pomocí C++
Níže jsou uvedeny kroky k odeslání e-mailu aplikace Outlook s klientem SMTP pomocí Aspose.Email for C++.
- Vytvořte e-mail Outlook nebo jej načtěte ze souboru pomocí třídy MailMessage.
- Vytvořte objekt SmtpClient.
- Nastavte hostitele, uživatelské jméno, heslo a číslo portu.
- Nastavte možnosti zabezpečení.
- Odešlete e-mail pomocí metody SmtpClient->Send().
Následující ukázka kódu ukazuje, jak odeslat e-mail Outlook pomocí C++.
// Vytvořte novou instanci třídy MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// Nastavte předmět zprávy, Html tělo a informace o odesílateli
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());
// Přidat příjemcům TO a Přidat příjemce kopie
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));
// Zadejte váš poštovní server, uživatelské jméno, heslo, port # a možnost zabezpečení
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
{
// Odeslat tuto zprávu
client->Send(message);
}
catch (System::Exception& ex)
{
}
C++ odesílání e-mailů aplikace Outlook s alternativním zobrazením
Můžete také zadat alternativní zobrazení e-mailu a vytvořit kopii zprávy v jiném formátu. Pokud je vaše zpráva například ve formátu HTML, můžete vytvořit alternativní zobrazení s prostým textem. Chcete-li vytvořit alternativní zobrazení, můžete použít metodu MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")).
Následující ukázka kódu ukazuje, jak odeslat e-mail s alternativním zobrazením pomocí C++.
// Vytvořte instanci třídy MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
// Pole Od a Do
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");
System::SharedPtr<AlternateView> alternate;
// Vytvořte instanci AlternateView pro zobrazení e-mailové zprávy s obsahem zadaným v řetězci
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");
// Přidejte alternativní text
message->get_AlternateViews()->Add(alternate);
// Vytvořte instanci třídy SmtpClient Class
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// Zadejte svůj poštovní server, uživatelské jméno, poštovní heslo a port #
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
// Klient->Odeslat tuto zprávu odešle
client->Send(message);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
Odesílejte hromadné e-maily pomocí C++
Může nastat případ, kdy potřebujete odeslat velké množství e-mailů najednou. Pro takové případy poskytuje Aspose.Email for C++ třídu MailMessageCollection pro zapouzdření více e-mailových zpráv. Následují kroky k odeslání velkého množství e-mailů.
- Vytvořte nebo načtěte e-mailové zprávy pomocí třídy MailMessage.
- Vytvořte objekt třídy MailMessageCollection.
- Přidejte e-mailové zprávy do kolekce pomocí metody MailMessageCollection->add().
- Vytvořte objekt třídy SmtpClient.
- Odesílejte hromadné e-maily pomocí metody SmtpClient->Send(MailMessageCollection).
Následující ukázka kódu ukazuje, jak odesílat většinu e-mailů pomocí C++.
// Vytvořte klienta SmtpClient jako klienta a zadejte server, port, uživatelské jméno a heslo
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");
// Vytvořte instance třídy MailMessage a zadejte Komu, Od, Předmět a Zpráva
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?");
// Vytvořte instanci třídy MailMessageCollection
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);
// Hromadné odeslání
try
{
// Odeslat zprávy
client->Send(manyMsg);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
C++ Odesílat e-maily jako TNEF
MS Outlook používá Transport Neutral Encapsulation Format(TNEF) k odesílání e-mailů s tělem RTF. V tomto případě je formátování extrahováno z e-mailu a je zakódováno jako TNEF. Na straně příjemce, pokud klient podporuje TNEF, sestaví prostý text a přílohu TNEF a vytvoří e-mail RTF. Jinak se e-mail zobrazí jako prostý text. Chcete-li odesílat e-maily jako TNEF, můžete použít metodu SmtpClient->setUseTnef(bool).
Následující ukázka kódu ukazuje, jak odeslat e-mail Outlook jako TNEF pomocí C++.
try
{
// Cesta k souboru e-mailem
System::String emlFileName = u"Message.eml";
// E-mail TNEF
// Načíst z 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);
// Tento příznak použijte k odeslání jako TNEF
client->Send(eml1);
}
catch (System::Exception& ex)
{
// chytit výjimku
}
Závěr
V tomto příspěvku jste viděli, jak odesílat e-maily aplikace Outlook pomocí C++. Kromě toho jste se naučili odesílat hromadné e-maily, odesílat e-maily s alternativním zobrazením nebo odesílat e-maily jako TNEF v aplikacích C++. Více o e-mailové knihovně Aspose C++ můžete prozkoumat pomocí dokumentace.