Добрый день!
Настраивая новый сервер для нового проекта, наткнулся на такую ситуацию, что не отправляется почта на Gmail. Сервер EX40-SSD от Hetzner.de. В данной краткой заметке я опишу, как я решил данную проблему. Свой домен я заменил на example.com.
На сервере установлен Debian Wheezy, ISPmanager Lite. В качестве MTA выступает Exim4.
# mail -s "Test message" qqw1mb0@gmail.com
Введем тело письма: Test mail
И нажмем клавиши: Ctrl+D.
# tail /var/log/exim4/mainlog
2013-10-29 16:42:37 1VbCNI-0003uR-TB <= root@example.com U=root P=local S=474 from <root@example.com> for qqw1mb0@gmail.com
2013-10-29 16:42:37 1VbCNI-0003uR-TB ** qqw1mb0@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:4001:c02::1a]: 550-5.7.1 [2a01:4f8:200:64ee::2 16] Our system has detected that this\n550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records\n550-5.7.1 and authentication. Please review\n550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more\n550 5.7.1 information. j42si19319297eew.194 - gsmtp
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd <= <> R=1VbCNI-0003uR-TB U=Debian-exim P=local S=1700 from <> for root@example.com
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd ** root@example.com R=unknown_users: Unknown user
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd Frozen (delivery error message)
2013-10-29 16:42:37 1VbCNI-0003uR-TB Completed
Настраивая новый сервер для нового проекта, наткнулся на такую ситуацию, что не отправляется почта на Gmail. Сервер EX40-SSD от Hetzner.de. В данной краткой заметке я опишу, как я решил данную проблему. Свой домен я заменил на example.com.
На сервере установлен Debian Wheezy, ISPmanager Lite. В качестве MTA выступает Exim4.
Тестирование
Тестировал отправку почты с помощью утилиты mail:# mail -s "Test message" qqw1mb0@gmail.com
Введем тело письма: Test mail
И нажмем клавиши: Ctrl+D.
Ошибка
Сама ошибка в exim4:# tail /var/log/exim4/mainlog
2013-10-29 16:42:37 1VbCNI-0003uR-TB <= root@example.com U=root P=local S=474 from <root@example.com> for qqw1mb0@gmail.com
2013-10-29 16:42:37 1VbCNI-0003uR-TB ** qqw1mb0@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:4001:c02::1a]: 550-5.7.1 [2a01:4f8:200:64ee::2 16] Our system has detected that this\n550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records\n550-5.7.1 and authentication. Please review\n550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more\n550 5.7.1 information. j42si19319297eew.194 - gsmtp
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd <= <> R=1VbCNI-0003uR-TB U=Debian-exim P=local S=1700 from <> for root@example.com
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd ** root@example.com R=unknown_users: Unknown user
2013-10-29 16:42:37 1VbCNJ-0003uW-Jd Frozen (delivery error message)
2013-10-29 16:42:37 1VbCNI-0003uR-TB Completed
Проблема заключалась в том, что Hetzner назначает IPv6-адрес для серверов и почтовый сервер пытается общаться по протоколу IPv6 с другими почтовыми серверами, которые поддерживают данный протокол, которым является Gmail.
Есть 2 способа решения данной проблемы, я же выбрал самый простой.
Первый способ
Необходимо запретить exim'у общаться по протоколу IPv6:
# vim /etc/exim4/exim4.conf.template
Над строкой begin acl необходимо добавить такую запись:
disable_ipv6 = true
И все, перезагружаем почтовый сервер:
# service exim4 restart
Теперь при отправке письма увидим, что письмо было успешно доставлено адресату.
Второй способ
Добавить PTR-запись для IPv6-адреса на DNS-сервер.
Допустим наш сервер получил IPv6-адрес: 2001:0db8:85a3::8a2e:0370:7334
Можно воспользоваться сервисом - ipv6-literal куда вставим наш адрес и получим результат напротив поля ipv6.arpa он будет выглядеть так: 4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa
Необходимо на DNS-сервере добавить адрес: 4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa IN PTR example.com
Вот и все.
Привет!
ОтветитьУдалитьПодскажи, а куда добавлять PTR запись из второго способа?
В файл зоны, туда где:
------------------
$TTL 86400
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
2013112000 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS robotns3.second-ns.com.
@ IN NS robotns2.second-ns.de.
@ IN NS ns1.first-ns.de.
localhost IN A 127.0.0.1
...
ftp IN CNAME www
imap IN CNAME www
loopback IN CNAME localhost
pop IN CNAME www
relay IN CNAME www
smtp IN CNAME www
@ IN MX 10 mail
4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa IN PTR example.com
------------------
Так?
Всё, разобрался. Спасибо :)
ОтветитьУдалитьp.s. пример выше не верен, не то скопировал что надо :)
а я тоже не поняла, куда добавлять запись из второго способа!
ОтветитьУдалить