“纵有疾风来,人生不言弃”,这句话送给正在学习golang的朋友们,也希望在阅读本文《如何从 Google Cloud 通过 G-suite 发送电子邮件》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!
问题内容
如何在 Go 中从 Google Cloud 所有者 G-suite 电子邮件帐户发送电子邮件?
是否可以使用 Google Cloud projectID 现有授权,而无需在 Go 源文件中指定 Google 帐户密码?
解决方案
我找到了解决方案!
这非常简单:您可以将连接限制为您的服务器 ip 地址,而不是指定帐户密码。
1) 使用 g-suite 管理员帐户登录您的 google 管理控制台 (https://admin.google.com)
2) 点击应用 -> g suite -> gmail -> 高级设置
3) 在页面底部,将鼠标悬停在 smtp 中继服务上,然后单击“添加其他”
4) 作为允许的发件人,选择“仅我域中的地址”
5) 选中仅接受来自指定 ip 地址的邮件并输入您的服务器 ip 地址
6) 单击“添加设置”,然后单击“保存”进行确认
这是发送电子邮件所需的 go 代码:
from := "[email protected]"
to := "[email protected]"
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)
}
更好的方法是直接在 google cloud 中创建 api/oauth2 凭据。 通过这种方式,您甚至不必指定服务器 ip 地址作为安全措施:
Https://medium.com/wesionary-team/sending-emails-with-go-golang-using-smtp-gmail-and-oauth2-185ee12ab306
以上就是《如何从 Google Cloud 通过 G-suite 发送电子邮件》的详细内容。