sendmail не может доставить в gmail - правила отправки IPv6 относительно записей PTR не выполняются

32

У меня проблемы с доставкой почты в Google из новой установки sendmail на Ubuntu 14.04. DNS-записи вроде бы хороши для ip. Что-то еще должно быть не так.

Отправка почты из командной строки:

sudo sendmail -v -Am -i myname@gmail.com;

Подробный вывод:

myname@fx1:/etc/mail$ sudo sendmail -v -Am -i myname@gmail.com;
myname@gmail.com... Connecting to aspmx.l.google.com. via esmtp...
220 mx.google.com ESMTP v1si55415385wja.21 - gsmtp
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> MAIL From:<myname@staging.mydomain.com>
250 2.1.0 OK v1si55415385wja.21 - gsmtp
>>> RCPT To:<myname@gmail.com>
>>> DATA
250 2.1.5 OK v1si55415385wja.21 - gsmtp
354  Go ahead v1si55415385wja.21 - gsmtp
>>> .
550-5.7.1 [2a01:4f8:212:27c8::2] Our system has detected that this message does
550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and
550-5.7.1 authentication. Please review
550-5.7.1  https://support.google.com/mail/?p=ipv6_authentication_error for more
550 5.7.1 information. v1si55415385wja.21 - gsmtp
myname... Connecting to local...
myname... Sent

Любая помощь очень ценится. Заранее спасибо.

Мерлин
источник
Вы просмотрели документ по ошибке?
Крейг Уотсон,
Да, конечно. В нем говорится, что ipv6 dns должен быть установлен. Я так и сделал, и адрес ipv6 указывает на доменное имя.
Мерлин,
А ваше прямое имя хоста есть?
Крейг Уотсон,
не уверен, что вы имеете в виду под прямым именем хоста. Обратный DNS для 2a01: 4f8: 212: 27c8 :: 2 установлен на staging.findix.com
merlin
3
Там твоя проблема. На staging.findix.com нет записи AAA, указывающей на 2a01:4f8:212:27c8::2.
Крейг Уотсон,

Ответы:

17

С точки зрения Google, они пытаются проверить подлинность подключенного к ним IP-адреса, поэтому они попытаются найти PTRзапись 2a01:4f8:212:27c8::2.

Когда они разрешат это в staging.findix.com, то они будут пытаться проверить, что это решает обратно 2a01:4f8:212:27c8::2- а это не так - увидеть этот результат поиска .

Обратный (PTR запись) Поиск

cwatson@thor:~$ nslookup 31.220.4.52
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
52.4.220.31.in-addr.arpa    name = tyr.vikingserv.net.

Форвард (запись A)

cwatson@thor:~$ nslookup tyr.vikingserv.net
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   tyr.vikingserv.net
Address: 31.220.4.52
Крейг Уотсон
источник
2
Этот первый пункт не совсем правильно; поскольку несколько записей A / AAAA могут указывать на один и тот же IP-адрес, это было бы невозможно. Требуется, чтобы на любое имя хоста, на которое указывает ваша запись PTR, при поиске этого имени хоста вы возвращались к исходному адресу. То есть петля address-> hostname-> address должна быть завершена; цикл hostname-> address-> hostname не может быть так гарантирован, и никто не должен заботиться об этом.
MadHatter поддерживает Монику
Спасибо. Это решило проблему, и сообщения от терминала были доставлены.
Мерлин
2
Мне кажется, вы отвечаете «почему», а не «как исправить». Мне лично не хватает знаний DNS для этого ответа, чтобы помочь мне.
Боб
1
Мне пришлось добавить запись AAAA для моего IPv6-адреса из сообщения об ошибке Google (2a01: 4f8: 212: 27c8 :: 2 в вашем случае) на DNS-сервер доменного имени, возвращенного hostnameкомандой. Через некоторое время (истечение срока действия TTL, которое было на следующий день) я смог отправить электронное письмо на мою учетную запись gmal с помощью этой команды: sendmail -v -Am -i <my_gmal_account>@gmail.com;(и нажав Ctrl + D).
Чонгор Халмай,
30
  1. Проверьте текущие протоколы:

    postconf inet_protocols

    net_protocols = all

  2. Отредактируйте файл cf, если он вернется all

    grep 'inet_protocols' /etc/postfix/main.cf

    inet_protocols = ipv4

  3. Перезапуск

    service postfix restart

  4. Проверьте это снова

    postconf inet_protocols

    inet_protocols = ipv4

Эндер
источник
3
ИМХО гораздо более простое решение, чем принятое. Если вам не нужно использовать IPv6, это может быть быстрым решением.
Ларикс Децидуа
Это проще, чем другой ответ, хотя другой является более полным. Это решило мою проблему, так как мне сейчас не нужен IPv6.
Явсмо
2

Ваше имя хоста сервера SMTP может быть проблемой. Мне показалось, что это так. POstfix каким-то образом отправлял имя хоста на smtp.gmail.com, не связанное с моим доменным именем smtp.

Дэвид Бойе
источник
2

Я думаю, что ответ Google немного неискренний. Хотя в их «сообщении об ошибке» упоминается PTR, 550 5.7.1 - это ретрансляция. Я тоже получал эту ошибку при установке Postfix / Dovecot, но я исправил ее через несколько шагов:

  1. Добавление IP-информации IPv6 в конфигурацию ifcfg-eth0 на почтовом сервере
  2. Добавление записи AAAA MX на ваш DNS
  3. Добавление диапазонов IPv6 всех «авторизованных отправителей» в ваш postfix / main.cf на вашем почтовом сервере.

У меня есть AT & T Business UVerse, и они не поддерживают статический IPv6 для PTR, но после выполнения вышеуказанных шагов Google перестал выдавать ошибки. Я использовал https://www.ultratools.com/ipv6Tools для преобразования из IPv4 в IPv6. Наконец, я собрал все вместе в своем практическом руководстве на сайте « Включение IPV6 в CentOS» (для отправки и получения почты).

Мэтью Хант
источник