我已经设置了 G Suite 帐户并启用了 SMTP 中继服务。中继服务当前配置为只接受来自我的网络服务器 IP 地址的邮件,不需要 SMTP 身份验证或 TLS 加密。
此链接告诉我应该能够将邮件发送到端口 25(或 465/587)上的 smtp-relay.gmail.com。
这一切都很好。我有一个非常简单的 go 脚本可以在这里发送电子邮件。
package main
import (
"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,因为我已经尝试了所有端口并且禁用了我的规则。
慕侠2389804
相关分类