如何从Google Cloud通过G-suite发送电子邮件

时间:2018-09-26 17:40:33

标签: email go google-cloud-platform smtp gsuite

如何通过Google Cloud所有者的G-suite电子邮件帐户在Go中发送电子邮件?

是否可以使用现有的Google Cloud projectID授权,而无需在Go源文件中指定Google帐户密码?

2 个答案:

答案 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 地址作为安全措施:

https://medium.com/wesionary-team/sending-emails-with-go-golang-using-smtp-gmail-and-oauth2-185ee12ab306