Maison  >  Article  >  développement back-end  >  Comment envoyer des pièces jointes en Golang

Comment envoyer des pièces jointes en Golang

王林
王林original
2023-05-15 11:10:371099parcourir

Avec le développement rapide d'Internet, le courrier électronique est devenu un élément indispensable de la vie quotidienne et du travail des gens. Dans les emails, les emails contenant des pièces jointes sont de plus en plus courants, comme l'envoi de CV, contrats, photos, etc. Golang est un langage de programmation rapide, simple et sécurisé que de plus en plus de personnes utilisent pour développer des applications d'envoi d'e-mails. Dans cet article, nous expliquerons comment envoyer des e-mails avec pièces jointes à l'aide de Golang.

Tout d'abord, nous devons utiliser une bibliothèque d'envoi d'e-mails pour envoyer des e-mails. Je recommande d'utiliser la populaire bibliothèque gomail. Il s'agit d'une bibliothèque d'envoi d'e-mails simple et facile à utiliser qui prend en charge SMTP et l'envoi de pièces jointes. Nous devons l'installer à l'aide de la commande go get :

go get gopkg.in/gomail.v2

Ensuite, nous devons créer un e-mail avec une pièce jointe. Pour y parvenir, nous devons créer un message en plusieurs parties pour le corps de l'e-mail et les pièces jointes. Il s'agit d'un format standard pour le contenu des e-mails et les pièces jointes. Voyons comment créer un message en plusieurs parties avec des pièces jointes :

func createMessage(to []string, subject string, body string, attachmentPath string) *gomail.Message {
    //create a new message
    message := gomail.NewMessage()
    //set the receiver
    message.SetHeader("To", to...)
    //set the subject
    message.SetHeader("Subject", subject)

    //create a multipart message
    multipart := gomail.NewMultipart("mixed")
    message.SetBody("text/html", body)

    //create and add attachment
    attachment := gomail.NewMessagePart()
    attachment.SetHeader("Content-Type", "application/octet-stream")
    attachment.SetHeader("Content-Disposition", fmt.Sprintf("attachment; filename=%s", attachmentPath))
    attachment.SetBodyFile(attachmentPath)
    multipart.AddPart(attachment)

    //add multipart message to the main message
    message.SetBody(multipart)
    return message
}

Dans le code ci-dessus, nous créons d'abord un nouveau message, puis définissons les destinataires et le sujet. Ensuite, nous créons un message en plusieurs parties contenant le corps et les pièces jointes. Enfin, nous ajoutons le message en plusieurs parties au message principal et renvoyons ce message.

Dans le code ci-dessus, nous utilisons NewMessage pour construire une instance d'e-mail, puis définissons l'adresse e-mail et l'objet de l'e-mail du destinataire. Ensuite, nous avons créé une instance en plusieurs parties et l'avons ajoutée au thème. Une instance en plusieurs parties contient du contenu texte et des pièces jointes avec des chemins de fichiers. Le type de contenu et le nom de fichier de la pièce jointe sont définis dans l'instance multipart et ajoutés à l'instance multipart créée. Enfin, nous définissons l'instance multipart comme étant le corps de l'instance de courrier électronique.

Maintenant que nous avons créé l'e-mail avec la pièce jointe, l'étape suivante consiste à envoyer l'e-mail au destinataire prévu à l'aide du protocole SMTP. Le code suivant montre comment utiliser la populaire bibliothèque gomail pour envoyer des e-mails :

func sendEmail(to []string, subject string, body string, attachmentPath string) {
    //create a new message
    message := createMessage(to, subject, body, attachmentPath)

    //create a new SMTP dialer
    dialer := gomail.NewDialer("smtp.gmail.com", 587, "yourEmail@gmail.com", "yourPassword")

    //send the message using the SMTP dialer
    if err := dialer.DialAndSend(message); err != nil {
        log.Fatalf("Failed to send email: %v", err)
    }
}

Dans le code ci-dessus, nous appelons d'abord la fonction createMessage pour créer un e-mail, puis créons un objet Dialer, qui est utilisé pour établir une connexion avec le serveur SMTP. Nous devons définir l'adresse du serveur du numéroteur, le numéro de port, l'adresse e-mail et le mot de passe de l'expéditeur de l'e-mail. Nous prenons ici le serveur SMTP de Gmail comme exemple.

Enfin, nous envoyons l'e-mail au destinataire cible via la méthode DialAndSend. Si une erreur est rencontrée lors de l'envoi d'un email, une erreur non nulle sera renvoyée. Nous pouvons utiliser le mécanisme de gestion des erreurs pour gérer les exceptions.

Résumé :

Dans cet article, nous avons présenté comment envoyer des e-mails avec des pièces jointes à l'aide de Golang. Nous avons utilisé la bibliothèque gomail pour envoyer l'e-mail, créé un message en plusieurs parties, ajouté le corps et les pièces jointes et envoyé l'e-mail au destinataire via SMTP. Grâce à cet article, vous apprendrez à utiliser la bibliothèque d'envoi d'e-mails dans Golang pour envoyer des e-mails avec pièces jointes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn