In diesem Blog erfahren Sie, wie Sie Outlook Email Nachrichten (einschließlich MSG, EML, EMLX oder MHTML) erstellen und Emails synchron oder asynchron mit C# in .NET oder .NET Core senden.

C# Outlook Email senden

Die Email ist zu einer Hauptquelle für den Austausch von Nachrichten und die gemeinsame Nutzung von Inhalten wie Dokumenten, Bildern oder anderen Dateitypen geworden. Die Häufigkeit der Verwendung von Emails liegt eher innerhalb der Online-Systeme zum Teilen wichtiger Benachrichtigungen oder Dokumente mit mehreren Entitäten. In solchen Fällen kann das manuelle Vorbereiten einer Vorlage und das manuelle Versenden von Emails an mehrere Beteiligte eine zeitaufwändige und hektische Aufgabe sein.

Hier kommt der Bedarf an einem Email-Automatisierungsdienst, mit dem Sie Emails nahtlos erstellen und versenden können. In diesem Artikel werde ich Ihnen also beibringen, wie Sie Email-Nachrichten in gängigen Outlook-Formaten erstellen und den Prozess des programmgesteuerten Versendens von Emails automatisieren. Nachdem Sie diesen Artikel gelesen haben, können Sie:

  • Erstellen und speichern Sie eine Email-Nachricht in C#,
  • Erstellen Sie eine Email mit HTML-Text in C#,
  • Erstellen Sie eine Email mit einer bestimmten Codierung in C#,
  • Emails synchron per SMTP in C# versenden,
  • Emails asynchron per SMTP in C# versenden,
  • und senden Sie Massen Emails in C#.

C# API zum Erstellen und Senden von Outlook Emails

Um den Prozess des Erstellens und Sendens von Email-Nachrichten zu automatisieren, verwenden wir Aspose.Email for .NET, eine leistungsstarke API zur Bearbeitung und Verarbeitung von Emails. Es unterstützt gängige Email-Formate, einschließlich MS Outlook-Nachrichten wie MSG, EML/EMLX usw. Sie können die DLL der API direkt herunterladen oder über NuGet Package Manager oder Package Manager Console in Visual Studio installieren .

PM> Install-Package Aspose.Email

Nachdem Sie eine C# Anwendung (Konsole, ASP.NET usw.) erstellt und Aspose.Email for .NET installiert haben, können Sie mit dem Erstellen und Versenden der Emails in C# beginnen.

Erstellen Sie eine Outlook Email in C#

Um Outlook Email Nachrichten zu erstellen oder zu bearbeiten, stellt Aspose.Email die Klasse MailMessage bereit. Mit dieser Klasse können Sie alle Eigenschaften einer Email-Nachricht festlegen (Betreff, An, Von und Text), Anhänge hinzufügen und die Nachricht in verschiedenen Email-Formaten wie EML, MSG, MHTML usw. speichern. Im Folgenden sind die Schritte zum Erstellen aufgeführt eine Email-Nachricht:

  • Erstellen Sie eine Instanz der MailMessage Klasse.
  • Legen Sie die Eigenschaften der Nachricht fest.
  • Speichern Sie die Email-Nachricht mit der methode MailMessage.Save().

Das folgende Codebeispiel zeigt, wie Sie eine Email-Nachricht in C# erstellen und speichern.

// Erstellen Sie eine neue Instanz der MailMessage Klasse
MailMessage message = new MailMessage();

// Legen Sie den Betreff der Nachricht, den Nachrichtentext und die Absenderinformationen fest
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);

// Zu Empfängern und CC-Empfängern hinzufügen
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Anhänge hinzufügen
message.Attachments.Add(new Attachment("word.docx"));

// Nachricht in den Formaten EML, EMLX, MSG und MHTML speichern
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);

Erstellen Sie eine Outlook Email mit HTML-Text in C#

Die HTML-Tags werden verwendet, um den Textkörper der Email strukturierter, präsentierbarer und mit verschiedenen Elementen wie Tabellen, Bildern, Listen usw. anzureichern. Falls Sie eine Email mit HTML-Text erstellen möchten, können Sie die Eigenschaft MailMessage.HtmlBody verwenden. Das folgende Codebeispiel zeigt, wie Sie eine Outlook Email mit HTML-Text in C# erstellen.

// Erstellen Sie eine neue Instanz der MailMessage Klasse
MailMessage message = new MailMessage();

// Legen Sie den Betreff der Nachricht, den HTML-Text und die Absenderinformationen fest
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);

// Zu Empfängern und CC-Empfängern hinzufügen
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Nachricht im EML/EMLX/MSG/MHTML Format speichern
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);

Erstellen Sie eine Outlook Email mit einer bestimmten Codierung in C#

Sie können auch Ihren gewünschten Codierungsstandard angeben, um dem Browser oder der Email Anwendung mitzuteilen, wie die Zeichen im Email Text zu interpretieren sind. Zu diesem Zweck wird die Eigenschaft MailMessage.BodyEncoding verwendet. Das folgende Codebeispiel zeigt, wie Sie die Textcodierung festlegen, wenn Sie eine Outlook Email mit C# erstellen.

// Erstellen Sie eine neue Instanz der MailMessage Klasse
MailMessage message = new MailMessage();

// Betreff der Nachricht, HTML-Text, Absender und Empfängerinformationen festlegen
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));

// Codierung angeben 
message.BodyEncoding = Encoding.ASCII;

// Nachricht im EML/EMLX/MSG/MHTML Format speichern
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);

Senden Sie Outlook Emails synchron oder asynchron in C#

Nachdem Sie die Email-Nachricht erstellt haben, können Sie sie nun synchron oder asynchron an ihre Empfänger senden. Mit der Klasse SmtpClient können Sie die Outlook Email Nachrichten über SMTP (Simple Mail Transfer Protocol) senden. Im Folgenden sind die Schritte zum Senden einer Email in C# mit Aspose.Email for .NET aufgeführt.

  • Erstellen oder laden Sie eine Email-Nachricht mithilfe der MailMessage Klasse.
  • Erstellen Sie eine Instanz der SmtpClient Klasse und legen Sie Host, Benutzername, Passwort und Portnummer fest.
  • Senden Sie Emails synchron oder asynchron mit der methode SmtpClient.Send bzw. SmtpClient.SendAsync.

Senden Sie eine Outlook Email synchron in C#

// MailMessage-Instanz erstellen. Sie können eine neue Nachricht erstellen oder eine bereits erstellte Nachrichtendatei (eml, msg usw.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Erstellen Sie eine Instanz der SmtpClient Klasse
SmtpClient client = new SmtpClient();

// Geben Sie Ihren Mailing-Host, Benutzernamen, Passwort, Portnummer und Sicherheitsoption an
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
	// Senden Sie diese Email
	client.Send(msg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Senden Sie eine Outlook Email asynchron in C#

// MailMessage-Instanz erstellen. Sie können eine neue Nachricht erstellen oder eine bereits erstellte Nachrichtendatei (eml, msg usw.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Erstellen Sie eine Instanz der SmtpClient Klasse
SmtpClient client = new SmtpClient();

// Geben Sie Ihren Mailing-Host, Benutzernamen, Passwort, Portnummer und Sicherheitsoption an
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

// Geben Sie Ihren Mailing-Host, Benutzernamen, Passwort, Portnummer und Sicherheitsoption an
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit; 

// Sende Nachrichten
client.SendAsync(msg);

Console.WriteLine("Sending message..."); 

msg.Dispose(); 

Senden Sie Massen Emails in C#

Sie können Emails auch in großen Mengen erstellen und versenden. Die Klasse MailMessageCollection wird verwendet, um die Sammlung von Email-Nachrichten aufzunehmen, die Sie senden möchten. Das folgende Codebeispiel zeigt, wie Massen Emails in C# gesendet werden.

// SmtpClient erstellen und Server, Port, Benutzername und Passwort angeben
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Erstellen Sie Instanzen der MailMessage Klasse und geben Sie To, From, Subject und Message an
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Erstellen Sie eine Instanz von MailMessageCollection und fügen Sie ihr Email-Nachrichten hinzu
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
 
try
{  
	// Sende Nachrichten
	client.Send(manyMsg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Live-Demos

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Outlook Emails in C# erstellen. Außerdem haben Sie gesehen, wie Sie Emails synchron oder asynchron aus .NET Anwendungen versenden. Sie können die Dokumentation von Aspose.Email for .NET durchsuchen, um mehr über die API zu erfahren.

Siehe auch