prefacio
Sabemos que el actual .NET Core no soporta el protocolo SMTP; cuando uso la función de envío del correo, necesito utilizar algunos componentes de terceros para lograr ese propósito; hoy os presentaré dos componentes de envío de correo de código abierto, MailKit y FluentEmail, los presentaré respectivamente.
MailKit
En ASP.NET Core, puedes usar MailKit para enviar mensajes, soporta protocolos multiplataforma, IMAP, POP3, SMTP y otros.
Puedes instalarlo usando los siguientes métodos:
Aquí tienes un ejemplo sencillo de cómo enviar un correo electrónico:
Si el contenido principal que quieres enviar es HTML, puedes usar lo siguiente:
Fluent Email también es un proyecto de código abierto, puedes usar plantillas de Razor para enviar correos electrónicos y puedes integrarte con algunos remitentes de correos de terceros como Mailgun, pero este paquete solo soporta SMTP bajo .NET 4.6. Puedes instalarlo usando el siguiente comando:
Puedes enviar un correo electrónico usando los métodos más básicos, tan simples como esto:
Alternativamente, puedes usar una plantilla de Razor para enviar:
Email.DefaultRenderer indica a FulentEmail qué renderizador usar (también puedes implementar el tuyo propio), luego proporciona una plantilla con el contenido de la cadena de plantilla de la sintaxis de Razor, y después usa UsingTemplate para renderizar el renderizado.
Plantilla CSHTML en disco
Si el archivo plantilla de Razor es grande y no es elegante para usar cadenas, entonces puedes poner el archivo plantilla en disco y cargarlo de la siguiente manera:
Envía mensajes con Mailgun
Algunas personas pueden no saber mucho sobre Mailgun, Mailgun es una empresa extranjera de servicios de correo, como el famoso servicio de correo Github que está alojado en ella, y la cuenta gratuita de Maingun puede enviar 10.000 correos electrónicos al mes, lo que es suficiente para muchos sitios web pequeños y medianos.
Al usar Mailgun para enviar correos, primero necesitas registrar una cuenta y luego puedes usar la API Rest que proporciona Mailgun para gestionar los correos que envías o recibes. Mailgun con integración con FluentEmail solo necesita añadir paquetes como este:
Tras registrarte en Mailgun, se te asignará una clave API y un nombre de dominio de segundo nivel, y tendrás que configurarlo de la siguiente manera:
resumen
A partir de los ejemplos anteriores, podemos ver que MailKit y FluentEmail tienen sus propias ventajas y desventajas. La ventaja de MailKit es que soporta muchos protocolos y es multiplataforma, pero la desventaja es que no ofrece soporte para Razor, y si usas Mailgun, necesitas integrarlo tú mismo. La ventaja de FlentEmail es que ofrece soporte para plantillas de Razor y encapsula Mailgun, pero la desventaja es que el protocolo SMTP aún no ofrece soporte para .NET Core.
En resumen, si usas Mailgun para enviar correos, entonces FluentEmail es la opción que deberías elegir, y si quieres usar el protocolo SMTP para enlazar con tu servidor de correo y enviar correos, entonces deberías usar MailKit.
|