Rumah  >  Artikel  >  pembangunan bahagian belakang  >  pergi pakej smtp tidak menunjukkan isi mesej pada e-mel

pergi pakej smtp tidak menunjukkan isi mesej pada e-mel

王林
王林ke hadapan
2024-02-09 23:18:091037semak imbas

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

Editor PHP Zimo mengingatkan semua orang bahawa anda mungkin menghadapi masalah semasa menghantar e-mel menggunakan pakej smtp bahasa Go, iaitu badan mesej tidak dipaparkan dengan betul dalam e-mel. Isu ini mungkin menghalang e-mel daripada menyampaikan maklumat yang diperlukan dengan betul. Sebelum menyelesaikan masalah ini, mari kita fahami dahulu cara menggunakan pakej smtp dan kemungkinan sebabnya.

Kandungan soalan

Jadi, saya ingin menghantar e-mel. E-mel telah berjaya dihantar ke peti masuk gmail, tetapi mesej atau kandungannya tiada atau kosong. Inilah kodnya

Pembantu Pek

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

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

Dalam kod berikut dalam pakej pembantu, ia sudah wujud dan digunakan sebagai parameter dalam smtp.sendmail() tetapi e-mel masih tiada mesej atau kosong

message := "From: "+ from + "\n" +
    "To: " + to + "\n" +
    "Subject: " + subject + "\n" +
    body

Bagaimana untuk menyelesaikannya?

Penyelesaian

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

message := "From: "+ from + "\n" +
"To: " + to + "\n" +
"Subject: " + subject + "\n" +
body

Perlu ada baris kosong antara pengepala mesej dan badan mesej, tetapi ia tiada di sini.

Sesetengah pelayan mel akan menyelesaikan masalah ini dengan menambah baris ini sebelum apa-apa yang tidak kelihatan seperti pengepala, sesetengah pelayan mel akan menyelesaikan masalah ini dengan cara lain, sesetengah pelayan akan menerima mesej ini sebagaimana adanya, tetapi paparan akan dipaparkan dalam cara tertentu Kegagalan, sesetengah pelayan akan menolak untuk menghantar e-mel yang salah bentuk ini secara terus.

Untuk maklumat lanjut tentang jangkaan kemunculan mesej, lihat rfc 5322.

Atas ialah kandungan terperinci pergi pakej smtp tidak menunjukkan isi mesej pada e-mel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam