为什么我无法从我在GCP中托管的应用使用Gmail SMTP发送电子邮件?

问题描述 投票:0回答:1

我正在使用golang开发一个邮件服务,我把它放在谷歌云服务上,我的应用程序在gcp中托管时无法发送电子邮件,但我可以在本地进行。

我之前在localhost中尝试过,并且在发送电子邮件时我获得了成功,但是当我在gcp上运行它时,它没有发送任何内容,日志很清楚,没有关于错误但是记录成功。我应该在gcp中配置什么?

这是我发送电子邮件的代码:

func (r *Request) SendEmail() (bool, error) {
    mime := "MIME-version: 1.0;\nContent-Type: text/html;
    charset = \"UTF-8\";\n\n"
    subject := "Subject: " + r.subject + "!\n"
    msg := []byte(subject + mime + "\n" + r.body)
    addr := "smtp.gmail.com:587"

    if err := smtp.SendMail(addr, auth, "[email protected]", r.to, msg); err != nil {
        return false, err
    }

    return true, nil
}

我希望从这个邮件服务收到一个消息

go google-cloud-platform smtp gmail
1个回答
0
投票

你实际上是从[email protected]发送电子邮件吗?假设上述代码有效,那么Gmail的反垃圾邮件过滤器会抓住你。

sample.com没有任何TXT(即SPF)或MX记录,您的GCE实例肯定不会被视为有利:

$ host -t txt sample.com.
sample.com has no TXT record

$ host -t mx sample.com.
sample.com has no MX record

如果它确实有效,它可能在垃圾邮件文件夹中,最好的情况。

如果您编辑了上述电子邮件中的代码段,并且实际上是从您拥有的域发送的,请确保您的MX,SPF和DMARC记录符合最新要求。特别是,您的SPF记录必须将GCE实例的IP列入白名单。

© www.soinside.com 2019 - 2024. All rights reserved.