我用这个来发送smtp. 它适用于一个接收器,但我想要多个接收器。我尝试了以下方法:
func sendemail(body string) {
from := "smtpemail"
pass := "pass"
to := "a@gmail.com,b@gmail.com"
....
}
Run Code Online (Sandbox Code Playgroud)
我也试过:
to := "\"a@gmail.com\",\"b@gmail.com\""
Run Code Online (Sandbox Code Playgroud)
和:
to := []string{"a@gmail.com","b@gmail.com"}
Run Code Online (Sandbox Code Playgroud)
他们都没有工作。对不起,它太简单了,我才开始使用golang.
从net/smtp文档:
msg 参数应该是一个 RFC 822 样式的电子邮件,首先是标题,一个空行,然后是邮件正文。msg 的行应该以 CRLF 结尾。msg 标头通常应包含“From”、“To”、“Subject”和“Cc”等字段。
RFC 822要求To:标头值是逗号分隔的列表。因此,虽然to变量应保持为 a[]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))
// ...
}
Run Code Online (Sandbox Code Playgroud)