为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Golang 通过 G Suite 发送电子邮件

使用 Golang 通过 G Suite 发送电子邮件

Go
蝴蝶刀刀 2023-05-15 10:17:23
我已经设置了 G Suite 帐户并启用了 SMTP 中继服务。中继服务当前配置为只接受来自我的网络服务器 IP 地址的邮件,不需要 SMTP 身份验证或 TLS 加密。此链接告诉我应该能够将邮件发送到端口 25(或 465/587)上的 smtp-relay.gmail.com。这一切都很好。我有一个非常简单的 go 脚本可以在这里发送电子邮件。package mainimport (        "log"        "net/smtp"        "os")func main() {        args := os.Args[1:]        to := args[0]        body := args[1]        from := "[my g-suite user account name]"        msg := "From: " + from + "\n" + "To: " + to + "\n" +                 "Subject: Hello Friend\n\n" + body        err := smtp.SendMail("smtp-relay.gmail.com:25",nil,                from, []string{to}, []byte(msg))        if err != nil {                log.Printf("smtp err :%s\n",err)        } else {                log.Printf("Email sent\n")        }        log.Printf("email sent\n")}当我运行它时,我得到以下恐慌2018/11/29 12:24:22 smtp err :dial tcp 74.125.195.28:25: connect: no route to host我明白这个错误告诉我的是什么,但我终生无法解决它。我认为这是我的防火墙设置的问题。我试过刷新我的 iptables 并禁用 ufw 但我每次都得到相同的结果。我还尝试使用 mutt 和 sendmail(具有类似设置)从该网络服务器发送邮件。关于我应该寻找什么的任何建议?我做了很多搜索并尝试了其他几个脚本,但总是得到相同的结果。编辑在尝试了几个不同的选项后,例如使用现有帐户的常规 gmail,使用 sendmail 或 ssmtp 我在尝试发送邮件时查看了 tcpdump。Wireshark 显示与邮件服务器的通信为“通信管理过滤”。我的意思是托管服务提供商正在过滤端口 25,465 和 587,因为我已经尝试了所有端口并且禁用了我的规则。
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

托管服务提供商正在过滤 SMTP 端口。然后开了一张服务票并调整了这些过滤器。邮件现在工作正常

查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信