登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-05 20:21:38 445浏览 收藏

今天golang学习网给大家带来了《为什么我无法从 GCP 中托管的应用使用 Gmail SMTP 发送电子邮件?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我正在使用 golang 开发邮件服务,并将其放在 google cloud 上提供服务,我的应用程序在托管在 gcp 内时无法发送电子邮件,但我可以在本地发送电子邮件。

我之前在本地主机中尝试过,发送电子邮件时获得了成功,但是当我在 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
}

我希望收到来自该邮件服务的消息


解决方案


您实际上是从 [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 列入白名单。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>