Integrazione di MailKit con il servizio di consegna tramite e-mail
Utilizzare MailKit per inviare e-mail tramite il servizio di consegna tramite e-mail.
Configurare MailKit per l'invio di e-mail tramite il servizio di consegna tramite posta elettronica
MailKit è un framework di posta elettronica multipiattaforma open source per le applicazioni .NET. Poiché SmtpClient non è più un approccio consigliato per inviare messaggi di posta elettronica nelle applicazioni .NET, è possibile utilizzare MailKit per inviare e ricevere messaggi di posta elettronica tramite il servizio di consegna tramite posta elettronica. Prima di utilizzare MailKit, impostare un codice MailKit di esempio e testarlo con la configurazione del servizio di consegna tramite e-mail.
Le seguenti istruzioni contengono un codice di esempio per comodità e devono essere utilizzate come riferimento.
Per impostare il codice di esempio MailKit ed eseguire il test della configurazione del servizio di consegna tramite e-mail:
-
Assicurarsi che Email Delivery sia configurato per l'invio di e-mail. Vedere Guida introduttiva.
Nota
Le credenziali SMTP sono necessarie per configurare MailKit in modo che utilizzi il servizio di consegna tramite e-mail. Assicurarsi di prendere nota del nome utente e della password quando si generano le credenziali SMTP.
-
Per creare un progetto in Visual Studio Code:
- Creare uno spazio di progetto creando una cartella con il nome OCIEmail.
- Aprire la cartella OCIEmail in VS Code File > Apri cartella.
- Aprire la finestra di terminale (ctrl + ~).
- Per creare il modello di progetto e aggiungere la dipendenza di MailKit, eseguire i comandi seguenti nel terminale.
dotnet new console --framework net6.0 dotnet add package MailKit --version 2.15.0Espandere il progetto nella finestra VS Code Explorer.
- Sostituire il contenuto del file Program.cs con il blocco di codice seguente:
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 !!"); } } }Linee guida importanti:
-
Se si utilizza la porta 465:
Utilizzare
client.Connect(host, port, true)per una connessione SSL/TLS diretta. -
Se si utilizza la porta 25 o 587:
Usare
client.Connect(host, port, SecureSocketOptions.StartTls).Assicurati di avere
using MailKit.Security;in alto.
-
-
Sostituire i seguenti parametri con i propri valori nel file Program.cs:
- FROM - Sostituisci con il tuo indirizzo email del mittente. Assicurarsi che questo indirizzo e-mail venga aggiunto all'elenco Mittenti approvati in Consegna tramite e-mail.
- TO - Sostituire con l'indirizzo e-mail del destinatario.
- Credenziali SMTP: sostituire
<smtp username>e<smtp password>con il nome utente e la password SMTP di Oracle Cloud Infrastructure generati nella console. - HOST - Sostituisci con l'endpoint SMTP del servizio di consegna tramite e-mail. Ad esempio, smtp.us-ashburn-1.oraclecloud.com.
- Salvare le modifiche ed eseguire il comando seguente per inviare la posta:
dotnet run - Esaminare l'output. Se il messaggio e-mail viene inviato correttamente, nella console viene visualizzato il messaggio Invio del messaggio e-mail riuscito. Altrimenti, viene visualizzato un messaggio di errore.
- Eseguire il login alla posta in arrivo del destinatario per verificare la ricezione del messaggio.