3
我通過gomail.v2發送電子郵件的唯一方法是使用Send()函數發送到for循環中的每封電子郵件。但我需要顯示其他電子郵件地址的那些相同的電子郵件已發送。golang多個收件人與gomail.v2
for _, recipient := range os.Args[3:] {
mail.SetAddressHeader("From", "[email protected]", "My Name")
mail.SetHeader("To", recipient)
mail.SetHeader("Subject", os.Args[2])
mail.SetBody("text/html", os.Args[1])
if err := dialer.DialAndSend(mail); err != nil {
log.Printf("Could not send email to %q: %v", recipient, err)
panic(err)
}
}
我發現是這樣的:
var emails bytes.Buffer
mail.SetAddressHeader("From", "[email protected]", "My Name")
mail.SetHeader("Subject", os.Args[2])
mail.SetBody("text/html", os.Args[1])
for _, recipient := range os.Args[3:] {
emails.WriteString(recipient + ",")
}
mail.SetHeader("To", emails.String())
if err := dialer.DialAndSend(mail); err != nil {
log.Printf("Could not send email to %q: %v", buffer, err)
panic(err)
}
它通過發送電子郵件只在字符串的首位獲得者。 而在像Gmail這樣的電子郵件管理器中,Outlook或任何其他收件人地址都顯示,但未發送。
我該如何正確地做到這一點?
它的工作!非常感謝。 – Khazs
什麼意思是「地址...」(3個點) – Khazs
...是用於片擴展的Go語言結構: 如果地址有3個元素 '''mail.SetHeader(「To」,address ...)''' 將等於 '''mail.SetHeader(「To」,地址[0],地址[1],地址[2])''' –