gomail

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

gomail: Envío de correos electrónicos en Go

gomail es una biblioteca potente y fácil de usar para enviar correos electrónicos en el lenguaje Go (Golang). Proporciona una interfaz conveniente para crear y enviar correos con soporte para archivos adjuntos, plantillas HTML, múltiples destinatarios y autenticación a través de SMTP. La biblioteca es mantenida activamente por la comunidad y es una de las soluciones estándar para trabajar con correo electrónico en el ecosistema Go.

¿Para qué sirve gomail?

El envío de correos electrónicos es una tarea común en aplicaciones web: registro de usuarios, restablecimiento de contraseñas, notificaciones, boletines. La biblioteca estándar de Go (net/smtp) proporciona funcionalidades básicas, pero requiere mucho trabajo manual: codificación de archivos adjuntos, creación de encabezados MIME, trabajo con plantillas HTML. gomail se encarga de todas estas complejidades, permitiéndole concentrarse en la lógica de la aplicación.

Instalación

La instalación se realiza con el comando estándar go get:

go get gopkg.in/gomail.v2

Para usarlo en un proyecto, importe el paquete:

import "gopkg.in/gomail.v2"

Funciones principales

  • Envío simple: código mínimo para enviar un correo con texto o HTML.
  • Soporte para archivos adjuntos: se pueden adjuntar archivos (imágenes, PDF, documentos).
  • Múltiples destinatarios: Para, CC, CCO.
  • HTML y texto: soporte para correos multipart/alternative.
  • Autenticación: soporte para LOGIN, PLAIN, CRAM-MD5.
  • Encabezados personalizados: posibilidad de agregar sus propios encabezados (Reply-To, Message-ID, etc.).
  • Grupos de envío: conveniente para envíos masivos.

Ejemplo de código en Go (Golang)

A continuación se muestra un ejemplo completo de envío de un correo con contenido HTML y un archivo adjunto a través del servidor SMTP de Gmail:

package main

import ( "gopkg.in/gomail.v2" "log")

func main() { m := gomail.NewMessage() m.SetHeader("From", "youremail@gmail.com") m.SetHeader("To", "recipient@example.com") m.SetHeader("Subject", "¡Hola desde Go!") m.SetBody("text/html", "<h1>¡Hola!</h1><p>Este es un correo de prueba.</p>") m.Attach("/path/to/file.pdf")

d := gomail.NewDialer("smtp.gmail.com", 587, "youremail@gmail.com", "yourpassword")

if err := d.DialAndSend(m); err != nil { log.Fatal(err) } log.Println("Correo enviado exitosamente")}

¿Cuándo usar gomail?

  • Cuando se requiere un envío confiable de correos con archivos adjuntos y maquetación HTML.
  • Al crear aplicaciones de servidor en Go donde se necesita integración con notificaciones por correo electrónico.
  • Para envíos masivos (usando un pool de conexiones).
  • Si está cansado de la codificación manual de MIME y desea un código limpio y legible.

La biblioteca gomail es una excelente opción para cualquier proyecto Go que requiera el envío de correos electrónicos. Es simple, está documentada y cubierta por pruebas.

Recommendations