Maison > développement back-end > Golang > le corps du texte

aller package smtp n'affiche pas le corps du message sur l'e-mail

王林
Libérer: 2024-02-09 23:18:09
avant
998 Les gens l'ont consulté

go 包 smtp 未在电子邮件上显示消息正文

L'éditeur PHP Zimo rappelle à tous que vous pouvez rencontrer un problème lors de l'envoi d'e-mails en utilisant le package smtp du langage Go, c'est-à-dire que le corps du message ne s'affiche pas correctement dans l'e-mail. Ce problème peut empêcher les e-mails de transmettre correctement les informations requises. Avant de résoudre ce problème, comprenons d’abord comment utiliser le package smtp et les raisons possibles.

Contenu de la question

Alors, je voulais envoyer un e-mail. L'e-mail a été envoyé avec succès dans la boîte de réception Gmail, mais le message ou le corps est manquant ou vide. Voici le code

Assistant Pack

func randomstringbytes() string {
    
    rand.seed(time.now().unixnano())
    number := []byte("0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz")
    
    b := make([]byte, 6)
    
    for i := range b{
      b[i] =  number[rand.intn(len(number))] 
    }
    
      return string(b)
}
  
func sendemail(to string, code string) error {
    from := "xxx"
    password := "xxx"
    smptserver := "smtp.gmail.com:587"
    subject := "verification code"
    body := "your verification code is: "+code

    message := "from: "+ from + "\n" +
    "to: " + to + "\n" +
    "subject: " + subject + "\n" +
    body
    
    auth := smtp.plainauth("", from, password, "smtp.gmail.com")

    return smtp.sendmail(smptserver, auth, from, []string{to}, []byte(message))
}
Copier après la connexion

Packmaster

func emailverify() {
    email := "xxx"
    code := helper.randomstringbytes()
    fmt.println("code:", code)
    err := helper.sendemail(email, code)
    if err != nil {
        fmt.println("error sending email:", err)
        return
    }
}

func main(){
    emailverify()
}
Copier après la connexion

Dans le code suivant du package d'assistance, il existe déjà et est utilisé comme paramètre dans smtp.sendmail() mais l'e-mail n'a toujours pas de message ou est vide

message := "From: "+ from + "\n" +
    "To: " + to + "\n" +
    "Subject: " + subject + "\n" +
    body
Copier après la connexion

Comment le résoudre ?

Solution

body := "Your verification code is: "+code

message := "From: "+ from + "\n" +
"To: " + to + "\n" +
"Subject: " + subject + "\n" +
body
Copier après la connexion

Il doit y avoir une ligne vide entre l'en-tête du message et le corps du message, mais elle manque ici.

Certains serveurs de messagerie résoudront ce problème en ajoutant cette ligne avant tout ce qui ne ressemble pas à un en-tête, certains serveurs de messagerie résoudront ce problème d'autres manières, certains serveurs accepteront ce message tel quel, mais l'affichage sera affiché en D'une certaine manière Échec, certains serveurs refuseront d'envoyer directement cet email mal formé.

Pour plus d'informations sur l'apparence attendue des messages, voir rfc 5322.

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!