gomail

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

gomail: Envio de email em Go

gomail é uma biblioteca poderosa e fácil de usar para enviar e-mails na linguagem Go (Golang). Ela fornece uma interface conveniente para criar e enviar e-mails com suporte a anexos, templates HTML, múltiplos destinatários e autenticação via SMTP. A biblioteca é ativamente mantida pela comunidade e é uma das soluções padrão para trabalhar com e-mail no ecossistema Go.

Para que serve o gomail?

Enviar e-mail é uma tarefa comum em aplicações web: registro de usuários, redefinição de senha, notificações, newsletters. A biblioteca padrão do Go (net/smtp) fornece funcionalidades básicas, mas exige muito trabalho manual: codificação de anexos, formatação de cabeçalhos MIME, trabalho com templates HTML. O gomail assume todas essas complexidades, permitindo que você se concentre na lógica da aplicação.

Instalação

A instalação é feita com o comando padrão go get:

go get gopkg.in/gomail.v2

Para usar no projeto, importe o pacote:

import "gopkg.in/gomail.v2"

Principais funcionalidades

  • Envio simples: código mínimo para enviar um e-mail com texto ou HTML.
  • Suporte a anexos: é possível anexar arquivos (imagens, PDFs, documentos).
  • Múltiplos destinatários: Para, Cc, Bcc.
  • HTML e texto: suporte a e-mails multipart/alternative.
  • Autenticação: suporte a LOGIN, PLAIN, CRAM-MD5.
  • Cabeçalhos personalizados: possibilidade de adicionar seus próprios cabeçalhos (Reply-To, Message-ID, etc.).
  • Grupos de envio: conveniente para envios em massa.

Exemplo de código em Go (Golang)

Abaixo está um exemplo completo de envio de e-mail com conteúdo HTML e anexo através do servidor SMTP do 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", "Olá do Go!") m.SetBody("text/html", "<h1>Olá!</h1><p>Este é um e-mail de teste.</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("E-mail enviado com sucesso")}

Quando usar o gomail?

  • Quando for necessário o envio confiável de e-mails com anexos e formatação HTML.
  • Ao criar aplicações server-side em Go que precisam de integração com notificações por e-mail.
  • Para envios em massa (usando pool de conexões).
  • Se você está cansado de codificar MIME manualmente e quer um código limpo e legível.

A biblioteca gomail é uma excelente escolha para qualquer projeto Go que exija envio de e-mail. Ela é simples, documentada e coberta por testes.

Recommendations