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

王林
リリース: 2024-02-09 23:18:09
転載
998 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!