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 le smtp et poster packages 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 le smtp et poster packages difficiles à utiliser et à configurer.
Une alternative populaire est celle de Jordan Wright e-mail package qui résume la complexité de l'envoi de courrier. Il ajoute également des fonctionnalités que vous ne trouverez pas dans le smtp et poster paquets.
Premiers pas avec le package de messagerie
Le e-mail package 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 le va chercher commande. 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.
aller obtenir 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 :
importer (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
Vous utiliserez le fmt package pour imprimer la sortie sur la console et le smtp package à 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.
courrier := "votre e-mail"
mot de passe := "votre mot de passe d'application"
Vous pouvez coder en dur le mot de passe ou utiliser un fichier de variable d'environnement pour une meilleure sécurité.
Le poster et mot de passe les variables 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 :
adresse_hôte := "smtp.mail.yahoo.com"
hostPort := "465"
Vous devrez également créer une nouvelle instance de messagerie pour envoyer des e-mails avec le e-mail emballer. Vous pouvez utiliser la méthode NewEmail du e-mail package pour initialiser une instance de messagerie pour votre messagerie :
nouveauEmail := e-mail. Nouveau courriel()
Le Nouveau courriel renvoie une instance de struct que vous pouvez modifier pour les éléments de votre email.
Vous pouvez utiliser le Depuis et Pour champs de la structure pour ajouter les e-mails de l'expéditeur et du destinataire à votre instance de messagerie.
nouveau courriel. De = courrier
nouveau courriel. À = []chaîne{"liste des destinataires"}
Le Pour 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 CC et Cci champs de votre e-mail à l'aide des Cci et CC champs de l'instance de structure :
nouveau courriel. Cci = []chaîne{"liste de cci"}
nouveau courriel. Cc = []chaîne{"liste de cc"}
Pour le contenu de l'e-mail, vous pouvez ajouter l'objet et le contenu textuel de votre e-mail à l'aide de la Sujet et Texte champs de la structure. Le sujet est un champ de chaîne et le contenu du texte est une tranche d'octet.
nouveau courriel. Sujet = "L'objet de l'e-mail"
nouveau courriel. Texte = []octet("Corps de votre e-mail")
Après avoir ajouté tous les champs obligatoires, vous pouvez envoyer l'e-mail en utilisant le Envoyer méthode de votre instance de messagerie. Le Envoyer prend en compte l'adresse de l'hôte, le numéro de port de l'hôte et une instance de smtp paquets PlainAuth.
err := newEmail. Envoyer(
fmt. Sprintf("%s: %s", hostAddress, hostPort),
smtp. PlainAuth("", mail, mot de passe, hostAddress)
)
si erreur != néant {
fmt. Imprimerln("Une erreur s'est produite lors de l'envoi du courrier")
} autre {
fmt. Imprimerln("Le mail a été envoyé avec succès")
}
Le Envoyer La méthode renvoie une erreur que vous pouvez gérer ou néant s'il n'y a pas d'erreurs.
Vous avez envoyé avec succès un e-mail avec le e-mail package avec moins de lignes que vous n'auriez à écrire envoyer un mail avec le smtp emballer.
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 smtp package est pratique pour envoyer des e-mails via divers services avec des fonctionnalités similaires à celles du e-mail emballer.