Comment envoyer du courrier dans Go à l’aide du package de messagerie

Comment envoyer du courrier dans Go à l’aide du package de messagerie

Au fur et à mesure que vous créez des applications, vous devrez envoyer des e-mails à différentes fins, des notifications à l’authentification, et bien d’autres. Go fournit les packages smtp et mail dans sa bibliothèque standard pour l’envoi d’e-mails. Il existe également de nombreux packages de messagerie tiers dans l’écosystème Go.

Les packages de messagerie intégrés font de l’envoi d’e-mails une tâche complexe. Si vous n’êtes pas un développeur d’applications côté serveur, vous trouverez peut-être que les packages smtp et mail sont difficiles à utiliser et à configurer.

Une alternative populaire est le package de courrier électronique de Jordan Wright qui résume la complexité de l’envoi de courrier. Il ajoute également des fonctionnalités que vous ne trouverez pas dans les packages smtp et mail .

Premiers pas avec le package de messagerie

aperçu github du paquet de messagerie

Le package de messagerie est une bibliothèque légère, robuste et flexible, appréciée pour sa simplicité. Avec seulement quelques lignes de code, vous pouvez créer et envoyer un e-mail avec des pièces jointes, du contenu HTML, etc. Le package prend également en charge des fonctionnalités avancées telles que les connexions SMTP sécurisées et plusieurs destinataires, ce qui en fait un outil polyvalent pour vos besoins de messagerie.

Le package de messagerie prend également en charge les champs CC et BCC, les adresses e-mail dans plusieurs formats, les confirmations de lecture et les en-têtes personnalisés.

Étant donné que le package n’est pas intégré à la bibliothèque standard Go, vous devrez l’installer avec la commande go get . Le package de messagerie prend en charge les versions 1.15 et supérieures de Go.

Exécutez cette commande pour installer le package dans les dépendances de votre projet après l’initialisation d’un nouveau projet.

go get github.com/jordan-wright/email

Une fois que vous avez installé le package de messagerie, vous pouvez l’importer en spécifiant l’emplacement relatif à votre chemin d’installation :

import (
    "fmt"
    "github.com/jordan-wright/email"
    "net/smtp"
)

Vous utiliserez le package fmt pour imprimer la sortie sur la console et le package smtp à des fins d’authentification.

Envoi d’e-mails avec le package d’e-mails

Vous devrez déclarer des variables pour stocker les données de votre courrier. Déclarez des variables pour votre email et votre mot de passe.

mail: = "your email"
password: = "your app password"

Vous pouvez coder en dur le mot de passe ou utiliser un fichier de variable d’environnement pour améliorer la sécurité.

Les variables mail et password doivent contenir respectivement votre adresse e-mail et votre mot de passe.

Vous devrez déclarer des variables pour l’adresse de l’hôte et le numéro de port pour le courrier. Voici l’adresse hôte et le numéro de port pour Yahoo mail :

hostAddress: = "smtp.mail.yahoo.com"
hostPort: = "465"

Vous devrez également créer une nouvelle instance de messagerie pour envoyer des e-mails avec le package de messagerie . Vous pouvez utiliser la méthode NewEmail du package de messagerie pour initialiser une instance de messagerie pour votre courrier :

newEmail: = email.NewEmail()

La méthode NewEmail renvoie une instance de structure que vous pouvez modifier pour les éléments de votre e-mail.

Vous pouvez utiliser les champs De et À de la structure pour ajouter les e-mails de l’expéditeur et du destinataire à votre instance de messagerie.

newEmail.From = mail
newEmail.To = []string{"list of recipients"}

Le champ À est une tranche de chaînes avec une capacité illimitée que vous pouvez utiliser pour déclarer toutes vos adresses de destinataires.

Vous pouvez ajouter les champs CC et BCC de votre e-mail en utilisant les champs Bcc et Cc de l’instance struct :

newEmail.Bcc = []string{"list of bcc"}
newEmail.Cc = []string{"list of cc"}

Pour le contenu de l’e-mail, vous pouvez ajouter le contenu de l’objet et du texte de votre e-mail à l’aide des champs Objet et Texte de la structure. Le sujet est un champ de chaîne et le contenu du texte est une tranche d’octet.

newEmail.Subject = "The Email subject"
newEmail.Text = []byte("Body of your email")

Après avoir ajouté tous les champs obligatoires, vous pouvez envoyer l’e-mail à l’aide de la méthode Send de votre instance d’e-mail. La méthode Send prend en compte l’adresse de l’hôte, le numéro de port de l’hôte et une instance de PlainAuth du package smtp .

err: = newEmail.Send(
   fmt.Sprintf("%s:%s", hostAddress, hostPort),
   smtp.PlainAuth("", mail, password, hostAddress)
)

if err! = nil {
    fmt.Println("There was an error sending the mail")
} else {
    fmt.Println("The mail was sent successfully")
}

La méthode Send renvoie une erreur que vous pouvez gérer ou nil s’il n’y a pas d’erreur.

résultat de l'envoi du courrier

Vous avez réussi à envoyer un e-mail avec le package e- mail avec moins de lignes que vous n’auriez à écrire pour envoyer un e-mail avec le package smtp .

Vous pouvez envoyer du courrier avec le package SMTP intégré

Go est un langage bien planifié puisque sa bibliothèque standard est livrée avec la plupart des fonctionnalités dont vous aurez besoin pour créer des applications Web complètes sans dépendances externes ni packages tiers.

Le package smtp est pratique pour envoyer des e-mails via divers services avec des fonctionnalités similaires au package de messagerie .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *