sendmail nie może dostarczyć do Gmaila - wytyczne dotyczące wysyłania IPv6 dotyczące rekordów PTR nie są spełnione

32

Mam problem z dostarczeniem poczty do Google z nowej instalacji sendmaila na Ubuntu 14.04. Rekordy DNS wydają się być w porządku dla ip. Coś jeszcze musi być nie tak.

Wysyłanie wiadomości z wiersza poleceń:

sudo sendmail -v -Am -i [email protected];

Gadatliwe wyjście:

myname@fx1:/etc/mail$ sudo sendmail -v -Am -i [email protected];
[email protected]... 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:<[email protected]>
250 2.1.0 OK v1si55415385wja.21 - gsmtp
>>> RCPT To:<[email protected]>
>>> 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

Każda pomoc jest bardzo doceniana. Z góry dziękuję.

Merlin
źródło
Czy przejrzałeś dokument w błędzie?
Craig Watson
tak oczywiście. Stwierdzono, że należy ustawić dns ipv6. Zrobiłem to, a adres ipv6 wskazuje nazwę domeny.
merlin
A twoja nazwa hosta przesyłania dalej to?
Craig Watson
nie jestem pewien, co masz na myśli z nazwą hosta do przodu. Odwrotny DNS dla 2a01: 4f8: 212: 27c8 :: 2 jest ustawiony na staging.findix.com
Merlin
3
To twój problem. staging.findix.com nie ma rekordu AAA wskazującego na 2a01:4f8:212:27c8::2.
Craig Watson

Odpowiedzi:

17

Z punktu widzenia Google starają się zweryfikować tożsamość adresu IP łączącego się z nimi, więc będą szukać PTRrekordu 2a01:4f8:212:27c8::2.

Kiedy to rozstrzygną staging.findix.com, spróbują sprawdzić, czy to rozwiązuje z powrotem 2a01:4f8:212:27c8::2- czego nie robi - zobaczyć wynik wyszukiwania .

Wyszukiwanie wsteczne (rekord 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.

Wyszukiwanie do przodu (rekord)

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
Craig Watson
źródło
2
Ten pierwszy para nie jest całkiem właściwy; ponieważ wiele rekordów A / AAAA może wskazywać na ten sam adres IP, byłoby to niemożliwe. Wymagane jest, aby niezależnie od nazwy hosta wskazywanej przez rekord PTR, po wyszukaniu tej nazwy hosta powrócić do pierwotnego adresu. Oznacza to, że pętla adres-> nazwa hosta-> adres musi być kompletna; nie można zagwarantować pętli nazwa-hosta-> adres-> nazwa hosta i nikt nie powinien się tym przejmować.
MadHatter obsługuje Monikę
Dziękuję Ci. To rozwiązało problem i wiadomości z terminala są dostarczane.
merlin
2
Wydaje mi się, że odpowiadasz na „dlaczego”, ale nie na „jak to naprawić”. Osobiście nie mam wystarczającej wiedzy na temat DNS, aby udzielić mi odpowiedzi.
Bob
1
Musiałem dodać rekord AAAA dla mojego adresu IPv6 z komunikatu o błędzie Google (2a01: 4f8: 212: 27c8 :: 2 w twoim przypadku) do serwera DNS o nazwie domeny zwróconej przez hostnamepolecenie. Po pewnym czasie (wygaśnięcie TTL, które było następnego dnia) byłem w stanie wysłać e-mail na moje konto gmal za pomocą tego polecenia: sendmail -v -Am -i <my_gmal_account>@gmail.com;(i naciskając Ctrl + D).
Csongor Halmai
30
  1. Sprawdź aktualne protokoły:

    postconf inet_protocols

    net_protocols = wszystkie

  2. Edytuj plik cf, jeśli zwraca all

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

    inet_protocols = ipv4

  3. Uruchom ponownie

    service postfix restart

  4. Sprawdź ponownie

    postconf inet_protocols

    inet_protocols = ipv4

Ender
źródło
3
IMHO rozwiązanie znacznie łatwiejsze niż przyjęte. Jeśli nie masz potrzeby korzystania z protokołu IPv6, może to być szybka poprawka.
Laryx Decidua
Jest to prostsze niż druga odpowiedź, chociaż druga jest bardziej kompletna. Rozwiązało to mój problem, ponieważ na razie nie potrzebuję IPv6.
javsmo
2

Twoja nazwa hosta serwera SMTP może być problemem. Wydawało mi się, że tak właśnie jest. POstfix w jakiś sposób wysyłał nazwę hosta na smtp.gmail.com, co nie ma związku z moją nazwą domeny smtp.

David Bouyeure
źródło
2

Myślę, że odpowiedź Google jest nieco nieszczera. Mimo że ich „komunikat o błędzie” wspomina o PTR, 550 5.7.1 dotyczy przekazywania. Ja również otrzymywałem ten błąd podczas instalacji Postfix / Dovecot, ale naprawiłem go przez kilka kroków:

  1. Dodawanie informacji o IPv6 IP do konfiguracji ifcfg-eth0 na serwerze pocztowym
  2. Dodanie rekordu AAAA MX do Twojego DNS
  3. Dodanie zakresów IPv6 wszystkich „autoryzowanych nadawców” w pliku postfix / main.cf na serwerze pocztowym.

Mam AT&T Business UVerse i nie obsługują one statycznego IPv6 dla PTR, ale po wykonaniu powyższych kroków Google przestał się mylić. Użyłem https://www.ultratools.com/ipv6Tools do konwersji z IPv4 na IPv6. Na koniec złożyłem wszystko w howto na mojej stronie w Włączanie IPV6 na CentOS (do wysyłania i odbierania poczty)

Matthew Hunt
źródło