prefazione
Sappiamo che l'attuale .NET Core non supporta il protocollo SMTP; quando uso la funzione di invio dell'email, devo utilizzare alcuni componenti di terze parti per raggiungere questo scopo; oggi vi presenterò due componenti open source per l'invio delle email, MailKit e FluentEmail, li presenterò rispettivamente.
MailKit
In ASP.NET Core, puoi usare MailKit per inviare messaggi, supporta multipiattaforma, IMAP, POP3, SMTP e altri protocolli.
Puoi installarlo utilizzando i seguenti metodi:
Ecco un esempio semplice di come inviare un'email:
Se il corpo del contenuto che vuoi inviare è HTML, puoi usare quanto segue:
Fluent Email è anch'esso un progetto open source, puoi usare i template Razor per inviare email e puoi integrarti con alcuni mittenti email di terze parti come Mailgun, ma questo pacchetto supporta SMTP solo sotto .NET 4.6. Puoi installarlo usando il seguente comando:
Puoi inviare un'email usando i metodi più semplici, semplici come questi:
In alternativa, puoi usare un template Razor per inviare:
Email.DefaultRenderer dice a FulentEmail quale renderer usare (puoi anche implementare il tuo), poi fornisce un template template con il contenuto della stringa di sintassi di Razor, e infine usa UsingTemplate per renderizzare il render.
Modello CSHTML su disco
Se il file template di Razor è grande e non è elegante per usare stringhe, puoi mettere il file template su disco e caricarlo come segue:
Invia messaggi con Mailgun
Alcune persone potrebbero non sapere molto su Mailgun, Mailgun è una società estera di servizi postali, come il famoso servizio email Github che vi è ospitato, e l'account gratuito Maingun può inviare 10.000 email al mese, sufficiente per molti siti web di piccole e medie dimensioni.
Quando si utilizza Mailgun per inviare email, prima devi registrare un account, e poi puoi usare l'API Rest fornita da Mailgun per gestire le email che invii o ricevi. Mailgun con integrazione FluentEmail deve solo aggiungere pacchetti come questo:
Dopo aver registrato Mailgun, ti verrà assegnata una chiave API e un nome di dominio di secondo livello, e dovrai configurarlo come segue:
sommario
Dagli esempi sopra possiamo vedere che MailKit e FluentEmail hanno i loro vantaggi e svantaggi. Il vantaggio di MailKit è che supporta molti protocolli ed è multipiattaforma, ma lo svantaggio è che non supporta Razor, e se usi Mailgun devi integrarlo da solo. Il vantaggio di FlentEmail è che fornisce supporto per i template Razor e racchiude Mailgun, ma lo svantaggio è che il protocollo SMTP non supporta ancora .NET Core.
In sintesi, se usi Mailgun per inviare email, allora FluentEmail è la scelta che dovresti scegliere, e se vuoi usare il protocollo SMTP per collegarti al tuo server di posta e inviare email, allora dovresti usare MailKit.
|