如何通过Google Cloud所有者的G-suite电子邮件帐户在Go中发送电子邮件?
是否可以使用现有的Google Cloud projectID授权,而无需在Go源文件中指定Google帐户密码?
答案 0 :(得分:2)
我找到了解决方案!
这非常简单:您无需指定帐户密码,而是可以将连接限制为您的服务器IP地址。
1)使用G-suite管理员帐户登录Google管理控制台(https://admin.google.com)
2)单击应用-> G Suite -> Gmail -> 高级设置
3)在页面底部,将鼠标悬停在 SMTP中继服务上,然后点击“ 添加另一个”
4)作为允许的发件人,选择“ 仅我域中的地址”
5)选中仅接受来自指定IP地址的邮件,然后键入您的服务器IP地址
6)单击“ 添加设置”,然后单击“ 保存”
进行确认。
这是发送电子邮件所需的Go代码:
from := "myuser@mydomain.com"
to := "mail@recipient.com"
msg := "From: " + from + "\n" +
"To: " + to + "\n" +
"Subject: Hello there\n\n" +
"SOME TEXT"
err := smtp.SendMail("smtp-relay.gmail.com:587", nil,
from, []string{to}, []byte(msg))
if err != nil {
log.Printf("smtp error: %s", err)
}
答案 1 :(得分:1)
更好的方法是直接在 Google Cloud 中创建 API/OAuth2 凭据。 通过这种方式,您甚至不必指定服务器 IP 地址作为安全措施: