MailKit mit Email Delivery integrieren
Verwenden Sie MailKit, um E-Mails über den Email Delivery-Service zu senden.
MailKit so konfigurieren, dass E-Mails über Email Delivery gesendet werden
MailKit ist ein plattformübergreifendes Open-Source-E-Mail-Framework für .NET-Anwendungen. Da SmtpClient kein Vorschlag mehr ist, E-Mails in .NET-Anwendungen zu senden, können Sie stattdessen MailKit verwenden, um E-Mails über Email Delivery zu senden und zu empfangen. Bevor Sie MailKit verwenden, richten Sie einen MailKit-Beispielcode ein, und testen Sie ihn mit der Email Delivery-Konfiguration.
Die folgenden Anweisungen enthalten einfachen Beispielcode und müssen als Referenz verwendet werden.
So richten Sie den Beispielcode MailKit ein und testen die Email Delivery-Konfiguration:
-
Stellen Sie sicher, dass Email Delivery zum Senden von E-Mails konfiguriert ist. Siehe Erste Schritte.
Hinweis
Die SMTP-Zugangsdaten sind erforderlich, um MailKit zur Verwendung von Email Delivery zu konfigurieren. Notieren Sie den Benutzernamen und das Kennwort, wenn Sie die SMTP-Zugangsdaten generieren.
-
So erstellen Sie ein Projekt in Visual Studio Code:
- Erstellen Sie einen Projektbereich, indem Sie einen Ordner mit dem Namen OCIEmail erstellen.
- Öffnen Sie den Ordner OCIEmail in VS-Codedatei > Ordner öffnen.
- Öffnen Sie das Terminalfenster (ctrl + ~).
- Um die Projektvorlage zu erstellen und die Abhängigkeit von MailKit hinzuzufügen, führen Sie die folgenden Befehle im Terminal aus.
dotnet new console --framework net6.0 dotnet add package MailKit --version 2.15.0Erweitern Sie Ihr Projekt im Fenster "VS Code Explorer".
- Ersetzen Sie den Inhalt der Datei Program.cs durch den folgenden Codeblock:
using System; using MailKit.Net.Smtp; using MailKit.Security; // Required for SecureSocketOptions when using port 25 or 587. using MailKit; using MimeKit; namespace Program { class TestOCIEmail { public static void Main (string[] args) { var message = new MimeMessage (); message.From.Add (new MailboxAddress ("<FROM NAME>", "<FROM>")); message.To.Add (new MailboxAddress ("<TO NAME>", "<TO>")); message.Subject = "Mail from OCI ED service"; message.Body = new TextPart ("Html") { Text = @" <h1>OCI Email Delivery test</h1> <p>This email was sent with OCI Email Delivery using the <a href='https://github.com/jstedfast/MailKit'>MailKit Package</a> for .Net .</p>" }; using (var client = new SmtpClient ()) { var host = "<HOST>"; var port = 465; // Use port numbers 25, 587, or 465. var username = "<smtp username>"; var password = "<smtp password>"; // --- Connection Options --- // For port 465 (SSL/TLS): // Connect using SSL/TLS by setting 'useSsl' to true. client.Connect(host, port, true); /* // For port 25 or 587 (STARTTLS): // Connect with STARTTLS option instead of SSL/TLS. client.Connect(host, port, SecureSocketOptions.StartTls); */ client.Authenticate (username, password); client.Send (message); client.Disconnect (true); } Console.WriteLine("Email sent successfully !!"); } } }Wichtige Richtlinien:
-
Wenn Sie Port 465 verwenden:
Verwenden Sie
client.Connect(host, port, true)für eine direkte SSL/TLS-Verbindung. -
Wenn Sie Port 25 oder 587 verwenden:
Verwenden Sie
client.Connect(host, port, SecureSocketOptions.StartTls).Stellen Sie sicher, dass Sie
using MailKit.Security;oben haben.
-
-
Ersetzen Sie die folgenden Parameter durch Ihre eigenen Werte in der Datei Program.cs:
- VON - Durch Ihre Absender-E-Mail-Adresse ersetzen. Stellen Sie sicher, dass diese E-Mail-Adresse der Liste "Genehmigte Absender" in Email Delivery hinzugefügt wird.
- AN - Durch die Empfänger-E-Mail-Adresse ersetzen.
- SMTP-Zugangsdaten - Ersetzen Sie
<smtp username>und<smtp password>durch den SMTP-Benutzernamen und das Kennwort für den Oracle Cloud Infrastructure-SMTP, die in der Konsole generiert wurden. - HOST - Durch den SMTP-Endpunkt für Email Delivery ersetzen. Beispiel: smtp.us-ashburn-1.oraclecloud.com.
- Speichern Sie die Änderungen, und führen Sie den folgenden Befehl aus, um die Mail zu senden:
dotnet run - Prüfen Sie die Ausgabe. Wenn die E-Mail erfolgreich gesendet wurde, wird in der Konsole E-Mail erfolgreich gesendet! angezeigt. Andernfalls wird eine Fehlermeldung angezeigt.
- Melden Sie sich im Posteingang des Empfängers an, um das Empfangen der E-Mail zu prüfen.