我正在使用this发送smtp
。它适用于一个接收器,但我想有多个接收器。我尝试过以下方法:
func sendemail(body string) {
from := "smtpemail"
pass := "pass"
to := "a@gmail.com,b@gmail.com"
....
}
我也尝试过:
to := "\"a@gmail.com\",\"b@gmail.com\""
和
to := []string{"a@gmail.com","b@gmail.com"}
它们都不起作用。抱歉,这很简单,我刚开始使用golang
。
答案 0 :(得分:4)
来自net/smtp
文档:
msg参数应该是带有标头的RFC 822样式的电子邮件, 一个空白行,然后是消息正文。应该是msg的行 CRLF终止。 msg标头通常应包含诸如的字段 "来自"," To"," Subject"和" Cc"。
RFC 822要求To:
标头值为逗号分隔列表。因此,虽然to
变量应该保持为[]string
并且作为smtp.SendMail
参数传递给to
,但邮件标题(在邮件中)应该以逗号分隔名单。请尝试以下操作:
func send(body string) {
// ...
to := []string{"foo@mailinator.com", "bar@mailinator.com"}
toHeader := strings.Join(to, ",")
msg := "From: " + from + "\n" +
"To: " + toHeader + "\n" + // use toHeader
"Subject: Hello there\n\n" +
body
err := smtp.SendMail("smtp.gmail.com:587",
smtp.PlainAuth("", from, pass, "smtp.gmail.com"),
from, to, []byte(msg))
// ...
}