ホームページ  >  記事  >  バックエンド開発  >  go package smtp でメールのメッセージ本文が表示されない

go package smtp でメールのメッセージ本文が表示されない

王林
王林転載
2024-02-09 23:18:091037ブラウズ

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

php エディター Zimo は、Go 言語の smtp パッケージを使用して電子メールを送信するときに問題が発生する可能性があることを皆さんに警告します。つまり、電子メール内にメッセージ本文が正しく表示されません。この問題により、電子メールで必要な情報が適切に伝達されなくなる可能性があります。この問題を解決する前に、まず smtp パッケージの使用方法と考えられる理由を理解しましょう。

質問内容

それではメールを送りたいと思います。電子メールは Gmail の受信トレイに正常に送信されましたが、メッセージまたは本文が見つからないか空です。これはコードです

パッケージアシスタント

リーリー

包主

リーリー

ヘルパー パッケージ内の次のコードでは、このコードはすでに存在し、smtp.sendmail() のパラメーターとして使用されていますが、電子メールにはまだメッセージがないか空です。

リーリー ###の解き方?

解決策

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))
}

メッセージ ヘッダーとメッセージ本文の間に空白行が必要ですが、ここでは空白行がありません。

一部のメール サーバーは、ヘッダーのように見えないものの前にこの行を追加することでこの問題を解決します。一部のメール サーバーは、他の方法でこの問題を解決します。また、一部のサーバーは、このメッセージをそのまま受け入れますが、何らかの方法で表示します。この方法が失敗すると、一部のサーバーはこの不正な電子メールの直接送信を拒否します。

メッセージの予期される形式の詳細については、

rfc 5322 を参照してください。

以上がgo package smtp でメールのメッセージ本文が表示されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。