Почта от Hetzner на GMail через Exim4 и IPv6
Недавно обнаружил, что на одном из моих блогов появляются комментарии, а уведомления на почту о них не создается. Т.к. появились пару свободных часов, я решил разобраться в проблеме..
Итак, блог хостится у компании Hetzner на выделенном сервере. Соответственно, все на нем настраивал я. DNS блога прописывается, через панель Robot. В качестве sendmail-а используется Exim4.
Первым делом, я зашел на почту и проверил папку "Спам". Там писем небыло. Тогда я проверил отправку писем на сервере из консоли:
1 2 3 |
# echo 'Текст письма' | mail -s 'Тема письма' username@gmail.com |
и из самого php
1 2 3 |
# php -r "mail('username@gmail.com', 'Test From Your-Site', 'Test Message from Sendmail by PHP');" |
писем не было. Я заглянул в логи:
1 2 3 |
# tail /var/log/exim4/mainlog |
и увидел следующее:
1 2 3 4 5 6 7 |
2013-11-21 09:46:31 1VjPuA-0008S7-Ep ** username@gmail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b]: 550-5.7.1 [2a01:4f8:a0:6102::2 16] Our system has detected that this\n550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records\n 550-5.7.1 and authentication. Please review\n550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more\n 550 5.7.1 information. k7si10856763wjz.160 - gsmtp |
тут говорится, что сообщение отправляется через IPv6, но нет PTR записи для моего домена. Другими словами, гугл хочет по ip проверить название моего домена.
Если бы у меня был свой DNS сервер, я бы просто добавил нужную запись в файлик обратных зон, однако у меня такой возможности не было.
Немного погуглив, я нашел совет отключить IPv6 в Exim.
Открываем файл в редакторе:
1 2 3 |
# nano /etc/exim4/exim4.conf.template |
И перед begin acl добавляем:
1 2 3 |
disable_ipv6 = true |
после чего перезагружаем сервис:
1 2 3 |
# service exim4 restart |
К сожалению данные манипуляции мне не помогли, ошибка по прежнему оставалась.
Я связался с Hetzner-ами и спросил что мне делать, они сказали, что можно добавить обратную запись через панель робота:
однако, и это не помогло. Ошибки по прежнему оставались.
Тогда я просто решил отрубить IPv6 вообще для интерфейса.
Открываем sysctl.conf
1 2 3 |
# nano /etc/sysctl.conf |
И добавляем такую строчку конфигурации:
1 2 3 |
net.ipv6.conf.eth0.disable_ipv6=1 |
После этого применяем конфигурацию:
1 2 3 |
# sysctl -p |
Теперь можем убедиться, что интерфейсу более не назначен адрес IPv6:
1 2 3 |
# ifconfig eth0 |
В моем случае, записи:
1 2 3 4 |
inet6 addr: 2a01:5f8:a0:6002::2/64 Scope:Global inet6 addr: fe80::221:86ff:fe62:4f32/64 Scope:Link |
исчезли, что говорило что я отключил IPv6.
После этого я вновь проверил работу Exim-а. Теперь почта на gmail отправлялась нормально.
Author: | Tags: /
| Rating:
6 comments.
Write a comment