出于某种原因,我无法弄清楚如何使用Gmail帐户,Appengine和Golang发送电子邮件。
这就是我所做的:
我访问了Google云端平台> Appengine>设置>选择Project,我在Email API授权发件人上添加了gmail帐户。
我尝试使用(https://golang.org/pkg/net/smtp/#pkg-examples)中的代码(func SendMail)来完成这项工作
package main
import (
"log"
"net/smtp"
)
func main() {
// Set up authentication information.
auth := smtp.PlainAuth("", "user@gmail.com", "password", "smtp.gmail.com")
// Connect to the server, authenticate, set the sender and recipient,
// and send the email all in one step.
to := []string{"recipient@example.net"}
msg := []byte("To: recipient@example.net\r\n" +
"Subject: discount Gophers!\r\n" +
"\r\n" +
"This is the email body.\r\n")
err := smtp.SendMail(smtp.gmail.com:587", auth, "sender@example.org", to, msg)
if err != nil {
log.Fatal(err)
}
}
在前端(JavaScript)上,我尝试运行此代码后得到一个不成功的响应。
我一直在appengine登台服务器上运行它
我尝试了不同的smtp服务器,端口和用户,但它仍无效(support.google.com/a/answer/176600?hl=en)
我在github和其他一些博客上找到了一些例子,我尝试了它们,但它并没有与众不同。 github.com/golang/go/wiki/SendingMail
nathanleclaire.com/blog/2013/12/17/sending-email-from-gmail-using-golang /
在所有的例子中,一切都看起来很直接,但有一些我肯定会遗漏或误解。
答案 0 :(得分:0)
在GAE上建立原始tcp连接有一些限制: https://cloud.google.com/appengine/docs/go/sockets/#limitations_and_restrictions
我建议使用GAE mail api(与标准smtp软件包略有不同)来发送电子邮件: https://cloud.google.com/appengine/docs/go/mail/sending-receiving-with-mail-api