У меня настроена учетная запись G Suite, и я включил службу ретрансляции SMTP.Служба ретрансляции в настоящее время настроена на прием почты только с IP-адреса моего веб-сервера, не требуя SMTP-аутентификации или шифрования TLS.
Эта ссылка сообщает мне, что я должен иметь возможность отправлять почту в smtp-relay.gmail.com через порт 25 (или 465/587).
Это все хорошо.У меня очень простой скрипт 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, поскольку я их все перепробовал и отключил свои правила.