Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

A medida que crea aplicaciones, deberá enviar correos electrónicos para diferentes propósitos, desde notificaciones hasta autenticación, y muchos más. Ir proporciona la SMTP y correo paquetes en su biblioteca estándar para enviar correos electrónicos. También hay muchos paquetes de correo electrónico de terceros en el ecosistema Go.

Los paquetes de correo incorporados hacen que el envío de correo electrónico sea una tarea compleja. Si no es un desarrollador de aplicaciones del lado del servidor, puede encontrar el SMTP y correo paquetes difíciles de usar y configurar.

Una alternativa popular es la de Jordan Wright. correo electrónico paquete que abstrae la complejidad de enviar correo. También agrega características que no encontrará en el SMTP y correo paquetes

Primeros pasos con el paquete de correo electrónico

El correo electrónico package es una biblioteca liviana, robusta y flexible, popular por su simplicidad. Con solo unas pocas líneas de código, puede crear y enviar un correo electrónico con archivos adjuntos, contenido HTML y más. El paquete también admite funciones avanzadas, como conexiones SMTP seguras y múltiples destinatarios, lo que lo convierte en una herramienta versátil para sus necesidades de correo electrónico.

instagram viewer

El paquete de correo electrónico también admite campos CC y BCC, direcciones de correo electrónico en múltiples formatos, recibos de lectura y encabezados personalizados.

Dado que el paquete no está integrado en la biblioteca estándar de Go, deberá instalarlo con el ir a buscar dominio. El paquete de correo electrónico es compatible con las versiones 1.15 y superiores de Go.

Ejecute este comando para instalar el paquete en las dependencias de su proyecto después de inicializar un nuevo proyecto.

ir obtener github.com/jordan-wright/email

Una vez que haya instalado el paquete de correo electrónico, puede importarlo especificando la ubicación relativa a su ruta de instalación:

importar (
"fmt"
"github.com/jordan-wright/correo electrónico"
"red/smtp"
)

Usarás el fmt paquete para imprimir la salida a la consola y el SMTP paquete con fines de autenticación.

Envío de correos con el paquete de correo electrónico

Deberá declarar variables para almacenar los datos de su correo. Declare variables para su correo electrónico y contraseña.

correo := "Tu correo electrónico"
contraseña := "la contraseña de tu aplicación"

Puede codificar la contraseña o usar un archivo de variables de entorno para mejorar la seguridad.

El correo y contraseña las variables deben contener su correo electrónico y contraseña, respectivamente.

Deberá declarar variables para la dirección del host y el número de puerto para el correo. Aquí están la dirección de host y el número de puerto para el correo de Yahoo:

dirección del host := "smtp.mail.yahoo.com"
puertohost := "465"

También deberá crear una nueva instancia de correo electrónico para enviar correos electrónicos con el correo electrónico paquete. Puede utilizar el método NewEmail del correo electrónico paquete para inicializar una instancia de correo electrónico para su correo:

nuevoCorreo electrónico := correo electrónico. Nuevo Email()

El Nuevo Email El método devuelve una instancia de estructura que puede modificar para los elementos de su correo electrónico.

Puedes usar el De y A campos de la estructura para agregar los correos electrónicos del remitente y el destinatario a su instancia de correo electrónico.

Nuevo Email. De = correo
Nuevo Email. a = []cadena{"lista de destinatarios"}

El A El campo es una porción de cadenas con capacidad ilimitada que puede usar para declarar todas las direcciones de sus destinatarios.

Puedes añadir CC y CCO campos de su correo electrónico utilizando el CCO y CC campos de la instancia de estructura:

Nuevo Email. CCO = []cadena{"lista de bcc"}
Nuevo Email. CC = []cadena{"lista de cc"}

Para el contenido del correo, puede agregar el asunto y el contenido del texto de su correo electrónico usando el Sujeto y Texto campos de la estructura. El asunto es un campo de cadena y el contenido del texto es un segmento de bytes.

Nuevo Email. Asunto = "El asunto del correo electrónico"
Nuevo Email. Texto = []byte("Cuerpo de su correo electrónico")

Una vez que haya agregado todos los campos obligatorios, puede enviar el correo electrónico utilizando el Enviar método de su instancia de correo electrónico. El Enviar El método toma la dirección del host, el número de puerto del host y una instancia del SMTP paquete PlainAuth.

err := nuevoCorreo. Enviar(
fmt. Sprintf("%s:%s", dirección de host, puerto de host),
SMTP. PlainAuth("", correo, contraseña, dirección de host)
)

si error! = nulo {
fmt. imprimir("Hubo un error al enviar el correo")
} demás {
fmt. imprimir("El mail fue enviado correctamente")
}

El Enviar método devuelve un error que puede manejar o nulo si no hay errores.

Has enviado correctamente un correo con el correo electrónico paquete con menos líneas de las que tendría que escribir enviar un correo con el SMTP paquete.

Puede enviar correo con el paquete SMTP incorporado

Go es un lenguaje bien planificado, ya que su biblioteca estándar incluye la mayoría de las funcionalidades que necesitará para crear aplicaciones web completas sin dependencias externas ni paquetes de terceros.

El SMTP El paquete es útil para enviar correos electrónicos a través de varios servicios con funcionalidades similares al correo electrónico paquete.