gomail : Envoi d'emails en Go
gomail est une bibliothèque puissante et facile à utiliser pour envoyer des emails en langage Go (Golang). Elle offre une interface pratique pour créer et envoyer des emails avec prise en charge des pièces jointes, des modèles HTML, de plusieurs destinataires et de l'authentification via SMTP. La bibliothèque est activement maintenue par la communauté et constitue l'une des solutions standard pour travailler avec les emails dans l'écosystème Go.
Pourquoi utiliser gomail ?
L'envoi d'emails est une tâche courante dans les applications web : inscription des utilisateurs, réinitialisation de mot de passe, notifications, newsletters. La bibliothèque standard de Go (net/smtp) offre des fonctionnalités de base, mais nécessite beaucoup de travail manuel : encodage des pièces jointes, création d'en-têtes MIME, travail avec des modèles HTML. gomail prend en charge toutes ces complexités, vous permettant de vous concentrer sur la logique de l'application.
Installation
L'installation se fait avec la commande standard go get :
go get gopkg.in/gomail.v2Pour l'utiliser dans un projet, importez le package :
import "gopkg.in/gomail.v2"Fonctionnalités principales
- Envoi simple : code minimal pour envoyer un email avec du texte ou du HTML.
- Prise en charge des pièces jointes : possibilité de joindre des fichiers (images, PDF, documents).
- Destinataires multiples : To, Cc, Bcc.
- HTML et texte : prise en charge des emails multipart/alternative.
- Authentification : prise en charge de LOGIN, PLAIN, CRAM-MD5.
- En-têtes personnalisés : possibilité d'ajouter vos propres en-têtes (Reply-To, Message-ID, etc.).
- Groupes de diffusion : pratique pour les envois en masse.
Exemple de code en Go (Golang)
Voici un exemple complet d'envoi d'un email avec contenu HTML et pièce jointe via le serveur 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", "Привет из Go!") m.SetBody("text/html", "<h1>Здравствуйте!</h1><p>Это тестовое письмо.</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("Письмо отправлено успешно")}Quand utiliser gomail ?
- Lorsque vous avez besoin d'un envoi fiable d'emails avec pièces jointes et mise en forme HTML.
- Lors de la création d'applications serveur en Go nécessitant une intégration avec des notifications par email.
- Pour les envois en masse (en utilisant un pool de connexions).
- Si vous en avez assez du codage manuel MIME et souhaitez un code propre et lisible.
La bibliothèque gomail est un excellent choix pour tout projet Go nécessitant l'envoi d'emails. Elle est simple, documentée et couverte par des tests.
Aussi dans la bibliothèque
Cryptographie en Go (Golang) : chiffrement et hachage
Génération Swagger/OpenAPI pour C++ : aperçu des outils et bibliothèques
ORM pour Kotlin : comparaison et exemples (Exposed, Ktorm, Hibernate)
vcpkg C++ : guide complet avec exemples concrets