Postfix - Host oder Domain nicht gefunden


22

Ich habe gerade Postfix auf meinem Ubuntu in einem lokalen Netzwerk installiert.

In diesem Netzwerk habe ich einen Exchange Server (mit Domäne mail.example.com). Ich hatte ein Problem beim Senden einer E-Mail an eine lokale Adresse adress@example.com:

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)

Ich habe dieses Problem mit relay_domainmeinem Postfix gelöst main.cf:

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

Und in meinem /etc/postfix/transport:

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

Jetzt kann ich Mails versenden @example.comund habe einige wichtige Webmails getestet (Gmail, Yahoo, Hotmail ...). Es klappt. Aber warum habe ich diesen Fehler bei meinen Adressen festgestellt @example.com? Wie kann ich sicher sein, dass ich diesen Fehler nie auf einer anderen Domain finde?

Meine Postfix-Konfiguration lautet:

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

Könnten Sie der Frage die Ausgabe der postconf -n hinzufügen?
ALex_hha

Verwenden Sie ipv6?
ALex_hha

Ich habe die Postfix-Konfiguration so geändert, dass sie momentan nur IPv4 verwendet.
Abwarten

Antworten:


33

Ihr Server versucht, beim Senden der E-Mail IPv6 zu verwenden. Da der mail.example.comkeine AAAA-Aufzeichnung hat (was dasselbe ist wie eine A-Aufzeichnung, aber für IPv6), funktioniert das nicht.

Wenn Postfix niemals IPv6 verwenden soll, können Sie dies in der Konfigurationsdatei ändern, wie in der Manpage postconf (5) erläutert:

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

Wenn Sie es nur für diese Domain ändern möchten, ändern Sie Ihre Transportzuordnung zum Lesen

example.com smtp-ipv4:[mail.domain.com]

Danke für diese Erklärung! Ich habe eine französische Dokumentation gelesen, in der angegeben wurde, dass ipv4 die DEFAULT-Konfiguration ist. Ich habe jetzt ipv4 installiert und Postfix neu geladen, scheint zu funktionieren. Danke noch einmal !
Vincent LITUR

Es hängt davon ab, welche Version von Postfix Sie verwenden. Ich kann mich nicht erinnern, welche Version standardmäßig auf welche eingestellt ist, aber ich weiß, dass sie es mindestens einmal geändert haben.
Jenny D sagt Reinstate Monica

7
Es ist nicht die Verbindung, die ausfällt, sondern die vorhergehende DNS-Suche. Wenn ich inet_protocols = alles habe, versucht es nicht, eine ASuche durchzuführen, wenn eine AAAASuche fehlschlägt, was sinnlos erscheint. Wenn Sie diesen Wert ändern, müssen Sie postfix neu starten und nicht nur neu laden.
Synchro

0

Die einfache Postfix-Konfiguration, die bei mir funktioniert hat.

/etc/postfix/main.cf

myhostname = localhost.testing.com
myorigin = testing.com
relayhost =
inet_protocols = ipv4
inet_interfaces = loopback-only
mydestination =

-5

Die folgende Änderung in /etc/postfix/main.cf hat das Problem für mich gelöst.

inet_protocols = ipv6 

Ändern Sie das oben auf

inet_protocols = all

8
Fügt der akzeptierten Antwort nicht viel hinzu und ist, um ehrlich zu sein, ohne JennyDs Beitrag, der die Erklärung liefert, nutzlos .
Deer Hunter
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.