Postfix - nie znaleziono hosta lub domeny

22

Właśnie zainstalowałem Postfix na moim Ubuntu, w sieci lokalnej.

W tej sieci mam serwer Exchange (korzystający z domeny mail.example.com). Miałem problem z wysłaniem wiadomości e-mail na adres lokalny [email protected]:

relay=none, delay=0.01, delays=0.01/0/0/0, dsn=4.3.5, status=deferred 
(Host or domain name not found. Name service error for name=example.com
type=AAAA: Host found but no data record of requested type)

Rozwiązałem ten problem, używając relay_domainw Postfix main.cf:

relay_domains = example.com
transport_maps = hash:/etc/postfix/transport

I w moim /etc/postfix/transport:

example.com smtp:[mail.example.com]

Teraz mogę wysyłać wiadomości e-mail @example.comi przetestowałem niektóre główne wiadomości e-mail (Gmail, Yahoo, Hotmail ...). To działa. Ale dlaczego mam ten błąd na moich adresach @example.com? Jak mogę się upewnić, że nigdy nie znajdę tego błędu w innej domenie?

Moja konfiguracja Postfiksa to:

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = SRVWEB, localhost.localdomain, localhost
myhostname = SRVWEB
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relay_domains = mutuelle-var.fr
relayhost =
smtp_generic_maps = hash:/etc/postfix/generic
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
Vincent LITUR
źródło
Czy możesz dodać wynik postconf -n do pytania?
ALex_hha
Czy używasz ipv6?
ALex_hha
Zmieniłem konfigurację Postfiksa, aby na razie korzystać tylko z IPv4. Poczekaj i zobacz ...
Vincent LITUR

Odpowiedzi:

33

Twój serwer próbuje użyć IPv6 podczas wysyłania wiadomości. Ponieważ mail.example.comnie ma rekordu AAAA (który jest taki sam jak rekord A, ale dla IPv6), to nie działa.

Jeśli chcesz, aby Postfix nigdy nie używał IPv6, możesz to zmienić w pliku konfiguracyjnym, jak wyjaśniono na stronie podręcznika postconf (5):

When IPv6 support is enabled via the inet_protocols parameter,  Post-
fix will do DNS type AAAA record lookups.

When  both IPv4 and IPv6 support are enabled, the Postfix SMTP client
will attempt to connect via IPv6 before attempting to use IPv4.

Examples:

inet_protocols = ipv4
inet_protocols = all (DEFAULT)
inet_protocols = ipv6
inet_protocols = ipv4, ipv6

Jeśli chcesz go zmienić tylko dla tej domeny, zmień mapę transportu, aby czytać

example.com smtp-ipv4:[mail.domain.com]
Jenny D mówi Przywróć Monikę
źródło
Dzięki za wyjaśnienie! Przeczytałem dokumentację w języku francuskim, w której napisano, że ipv4 jest konfiguracją DOMYŚLNĄ. Teraz umieściłem ipv4 i ponownie załadowałem Postfix, wydaje się działać. Dzięki jeszcze raz !
Vincent LITUR
To zależy od używanej wersji Postfix - nie pamiętam, która wersja jest domyślna, ale wiem, że zmienili ją przynajmniej raz.
Jenny D mówi Przywróć Monikę
7
Połączenie nie kończy się niepowodzeniem, ale poprzedza je wyszukiwanie DNS. Gdy inet_protocols = allgo mam , nie podejmuje próby Awyszukiwania, jeśli AAAAwyszukiwanie nie powiedzie się, co wydaje się bezcelowe. Ponadto, jeśli zmienisz tę wartość, musisz zrestartować postfiks, a nie tylko przeładować.
Synchro
0

Prosta konfiguracja Postfix, która działała dla mnie.

/etc/postfix/main.cf

myhostname = localhost.testing.com
myorigin = testing.com
relayhost =
inet_protocols = ipv4
inet_interfaces = loopback-only
mydestination =
Joseph
źródło
-5

Następująca zmiana w /etc/postfix/main.cf rozwiązała problem dla mnie.

inet_protocols = ipv6 

Zmień powyższe na

inet_protocols = all
selche
źródło
9
Niewiele dodaje do przyjętej odpowiedzi i, szczerze mówiąc, jest bezużyteczny bez postu JennyD, który zawiera wyjaśnienie .
Deer Hunter,