Senden Sie Outlook Emails in C++

Im vorherigen Artikel haben Sie gesehen, wie Sie MS Outlook Emails einschließlich MSG, EML und EMLX programmgesteuert mit C++ erstellen. In diesem Beitrag erfahren Sie, wie Sie Outlook Emails aus C++ Anwendungen versenden. Die Emails können zur Laufzeit erstellt oder aus bereits gespeicherten Email Dateien wie .msg, .emlx usw. geladen werden.

Senden Sie Emails mit der C++ Email Bibliothek – kostenloser Download

Ebenso wie im vorherigen Beitrag verwenden wir Aspose.Email for C++, um die Outlook Emails zu senden. Sie können die Bibliotheksdateien aus dem Abschnitt Downloads herunterladen oder mit NuGet installieren.

Senden Sie Outlook Emails mit C++

Im Folgenden sind die Schritte zum Senden einer Outlook Email mit dem SMTP-Client mit Aspose.Email for C++ beschrieben.

  • Erstellen Sie mithilfe der Klasse MailMessage eine Outlook Email oder laden Sie sie aus einer Datei.
  • Erstellen Sie ein Objekt von SmtpClient.
  • Legen Sie Host, Benutzername, Passwort und Portnummer fest.
  • Sicherheitsoptionen festlegen.
  • Senden Sie eine Email mit der methode SmtpClient->Send().

Das folgende Codebeispiel zeigt, wie Sie eine Outlook Email mit C++ senden.

// Erstellen Sie eine neue Instanz der MailMessage Klasse
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Legen Sie den Betreff der Nachricht, den HTML-Text und die Absenderinformationen fest
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());
// TO-Empfänger hinzufügen und CC-Empfänger hinzufügen
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));

// Geben Sie Ihren Mailing-Host-Server, Benutzername, Passwort, Portnummer und Sicherheitsoption an
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
{
	// Senden Sie diese Nachricht
	client->Send(message);
}
catch (System::Exception& ex)
{

}

C++ Outlook Emails mit alternativer Ansicht senden

Sie können auch eine alternative Ansicht der Email angeben, um eine Kopie der Nachricht in einem anderen Format zu erstellen. Wenn Ihre Nachricht beispielsweise im HTML Format vorliegt, können Sie eine alternative Ansicht mit reinem Text erstellen. Um eine alternative Ansicht zu erstellen, können Sie die Methode MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")) verwenden.

Das folgende Codebeispiel zeigt, wie Sie mit C++ eine Email mit einer alternativen Ansicht senden.

// Erstellen Sie eine Instanz der MailMessage Klasse
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Von und Bis-Feld
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");

System::SharedPtr<AlternateView> alternate;

// Erstellen Sie eine Instanz von AlternateView, um eine Email-Nachricht mit dem in der Zeichenfolge angegebenen Inhalt anzuzeigen
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");

// Alternativtext hinzufügen
message->get_AlternateViews()->Add(alternate);

// Erstellen Sie eine Instanz der SmtpClient Klasse
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Geben Sie Ihren Mailing-Host-Server, Benutzernamen, Email-Passwort und Portnummer an.
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
	// Client->Senden sendet diese Nachricht
	client->Send(message);
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

Senden Sie Massen Emails mit C++

Es kann vorkommen, dass Sie viele Emails gleichzeitig senden müssen. Für solche Fälle stellt Aspose.Email for C++ die Klasse MailMessageCollection bereit, um mehrere Email-Nachrichten zu kapseln. Im Folgenden finden Sie Schritte zum Versenden des Großteils der Emails.

  • Erstellen oder laden Sie Email-Nachrichten mit der Klasse MailMessage.
  • Erstellen Sie ein Objekt der Klasse MailMessageCollection.
  • Fügen Sie der Sammlung Email-Nachrichten mit der methode MailMessageCollection->add() hinzu.
  • Erstellen Sie ein Objekt der Klasse SmtpClient.
  • Senden Sie Massen Emails mit der SmtpClient->Send(MailMessageCollection) methode.

Das folgende Codebeispiel zeigt, wie der Großteil der Emails mit C++ gesendet wird.

// SmtpClient als Client anlegen und Server, Port, Benutzername und Passwort angeben
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");

// Erstellen Sie Instanzen der MailMessage Klasse und geben Sie An, Von, Betreff und Nachricht an
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?");

// Erstellen Sie eine Instanz der MailMessageCollection Klasse
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);

// Massenversand
try
{
	// Sende Nachrichten
	client->Send(manyMsg); 
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

C++ sendet Emails als TNEF

MS Outlook verwendet Transport Neutral Encapsulation Format (TNEF), um Emails mit RTF-Texten zu senden. In diesem Fall wird die Formatierung aus der Email extrahiert und als TNEF codiert. Wenn der Client auf der Empfängerseite TNEF unterstützt, stellt er den Klartext und den TNEF-Anhang zusammen, um die RTF Email zu erstellen. Andernfalls wird die Email als Klartext angezeigt. Um Emails als TNEF zu senden, können Sie die Methode SmtpClient->setUseTnef(bool) verwenden.

Das folgende Codebeispiel zeigt, wie Sie eine Outlook Email als TNEF mit C++ senden.

try
{
// Email Dateipfad
System::String emlFileName = u"Message.eml";
// Eine TNEF Email

// Laden von 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);
// Verwenden Sie dieses Flag, um als TNEF zu senden
client->Send(eml1); 
}
catch (System::Exception& ex)
{
// Ausnahme abfangen
}

Fazit

In diesem Beitrag haben Sie gesehen, wie Sie Outlook Emails mit C++ senden. Darüber hinaus haben Sie gelernt, wie Sie Massen Emails senden, Emails mit einer alternativen Ansicht senden oder Emails als TNEF innerhalb von C++ Anwendungen senden. Weitere Informationen zur C++ Email Bibliothek von Aspose finden Sie in der Dokumentation.

Siehe auch