На Ubuntu 16.04 VPS, размещенном GoDaddy, я хочу иметь возможность отправлять электронную почту, используя свое доменное имя.
Я создал почтовый пользователь (скрытый) через Vestacp,установил Roundcube и проверил, могу ли я получать электронные письма с одного из моих личных адресов (пробовал с gmail и hotmail).
Однако, когда я хочу ответить, exim4 не может отправить и выдает ошибку «Нет маршрута к хосту».
# cat /var/log/exim4/mainlog
exim 4.86_2 daemon started: pid=2310, -q30m, listening for SMTP on port 25 (IPv4) port 587 (IPv4) port 2525 (IPv4) and for SMTPS on port 465 (IPv4)
Start queue run: pid=2311
1iDCy2-00021u-SM H=gmail-smtp-in.l.google.com [172.217.197.27] No route to host
1iDD5o-0000bk-Gt <= noreply@webtest.domain.com U=admin P=local S=795 id=337cb2f63221d64985700e25c2074569@webtest.domain.com
1iDCy2-00021u-SM H=alt1.gmail-smtp-in.l.google.com [64.233.186.27] No route to host
1iDCy2-00021u-SM H=alt2.gmail-smtp-in.l.google.com [74.125.193.27] No route to host
[...]
1iDCy2-00021u-SM == recipient@gmail.com R=dnslookup T=remote_smtp defer (110): Connection timed out
1iDCzB-0002B3-PK ** root@webtest.domain.com: Unrouteable address
1iDCzB-0002B3-PK Frozen (delivery error message)
1iDD8s-0000gq-H3 <= <> R=1iDD8s-0000go-GN U=Debian-exim P=local S=1211
Я попытался запустить tracepath к одному из этих IP-адресов и увидел, что по умолчанию он использует интерфейс внутренней сети GoDaddy, а не тот, который имеет IP-адрес Интернета:
# tracepath 172.217.218.27
1?: [LOCALHOST] pmtu 1500
1: 10.217.15.252 0.262ms
[...]
8: ash-b1-link.telia.net 54.953ms asymm 12
9: no reply
10: no reply
Поэтому я попытался добавить директиву интерфейса в /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
и перезагрузил VPS.
remote_smtp:
debug_print = "T: remote_smtp for $local_part@$domain"
driver = smtp
interface = 148.72.xx.xx
Но я все еще получаю ту же ошибку. Я понятия не имею, где теперь искать.
Проблема была не там, где я ожидал, а просто в том, что провайдер GoDaddy потребовал от меня использовать их сервер ретрансляции. Я понял, что, протестировав порт 25 с помощью $ telnet portquiz.net 25
, и, к моему большому удивлению, даже несмотря на то, что на нем не было ни подключения, ни брандмауэра, блокирующего его, он не смог подключиться .
Это заставит вашу почту проходить через почтовые серверы GoDaddy, но это самое простое решение afaik. Я отредактировал файл шаблона конфигурации /etc/exim4/exim4.conf.template
и обновил следующий раздел:
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
begin routers
smarthost:
driver = manualroute
transport = remote_smtp
route_list = !+local_domains dedrelay.secureserver.net
Затем я выполнил # dpkg-reconfigure exim4-config
снова (я не уверен, что конфигурация, которую я ввел, единственная, которая работает, но она работает для меня) :
- Internet site;
- System mail name: xxx.secureserver.net (find yours in GoDaddy's My Hosting > Server > YourVPS > Settings tab > Hostname)
- 127.0.0.1 ; ::1
- mydomain.com
- Domain to relay: empty
- Machines to relay: empty
- DNS dial on demand: no
- mbox
- Split config: no
И, конечно же, как вы, наверное, видели тысячу раз на в Интернете вы можете проверить конфигурацию с помощью:
echo "hello" | mail -s "Title" recipient@mail.com
Однако, доставка письма может занять около 5 минут . Более быстрый способ узнать, правильно ли обрабатывается электронное письмо, - это проверить, увеличивается ли счетчик «SMTP-реле» на панели управления вашего сервера на веб-сайте GoDaddy.