28 votes

Postfix - Hôte ou domaine non trouvé

Je viens d'installer Postfix sur mon Ubuntu, sur un réseau local.

Sur ce réseau, j'ai un serveur Exchange (utilisant le domaine mail.example.com ). J'ai eu un problème pour envoyer un courriel à une adresse locale : 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)

J'ai résolu ce problème en utilisant relay_domain dans mon Postfix main.cf :

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

Et dans mon /etc/postfix/transport :

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

Maintenant je peux envoyer des mails sur @example.com et j'ai testé quelques grands webmails (Gmail, Yahoo, Hotmail...). Cela fonctionne. Mais pourquoi j'ai cette erreur sur mes adresses @example.com ? Comment puis-je être sûr de ne jamais retrouver cette erreur sur un autre domaine ?

Ma configuration Postfix est la suivante :

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 = domain.com
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

40voto

Jenny D Points 26978

Votre serveur essaie d'utiliser l'IPv6 pour envoyer le courrier. Comme le mail.example.com n'a pas d'enregistrement AAAA (qui est identique à un enregistrement A, mais pour IPv6), cela ne fonctionne pas.

Si vous voulez que Postfix niemals utiliser IPv6, vous pouvez le changer dans le fichier de configuration, comme expliqué dans la page de manuel 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

Si vous voulez le changer pour ce domaine seulement, changez votre carte de transport pour qu'elle soit la suivante

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

2voto

Denis Astahov Points 111

J'ai pu le résoudre en disant à Postfix d'utiliser Google DNS, juste après l'installation de Postfix :

echo 'nameserver 8.8.8.8' >> /var/spool/postfix/etc/resolv.conf

1voto

joseph Points 11

La configuration simple de Postfix qui a fonctionné pour moi.

/etc/postfix/main.cf

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

-4voto

Andy Shellam Points 8120

La modification suivante dans /etc/postfix/main.cf a résolu le problème pour moi.

inet_protocols = ipv6 

Changez ce qui précède en

inet_protocols = all

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X