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» (для отправки и получения почты).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.