Postfix - Host ou domínio não encontrado

22

Acabei de instalar o Postfix no meu Ubuntu, em uma rede local.

Nesta rede, eu tenho um Exchange Server (usando domínio mail.example.com). Ocorreu um problema ao enviar um email para um endereço local [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)

Resolvi esse problema usando relay_domainno meu Postfix main.cf:

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

E no meu /etc/postfix/transport:

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

Agora eu posso enviar e-mails @example.come testei alguns dos principais webmails (Gmail, Yahoo, Hotmail ...). Funciona. Mas por que esse erro ocorreu nos meus endereços @example.com? Como posso ter certeza de que nunca encontrei esse erro em outro domínio?

Minha configuração do Postfix é:

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
fonte
Você poderia adicionar a saída do postconf -n à pergunta?
ALex_hha
Você está usando o ipv6?
ALex_hha
Mudei a configuração do postfix para usar apenas o ipv4 por enquanto. Espere e veja ..
Vincent LITUR 21/02

Respostas:

33

Seu servidor está tentando usar o IPv6 ao enviar o email. Como o mail.example.comnão possui um registro AAAA (que é o mesmo que um registro A, mas para IPv6), isso não está funcionando.

Se você deseja que o Postfix nunca use o IPv6, você pode alterá-lo no arquivo de configuração, conforme explicado na página do manual 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

Se você deseja alterá-lo apenas para este domínio, altere seu mapa de transporte para ler

example.com smtp-ipv4:[mail.domain.com]
Jenny D diz Restabelecer Monica
fonte
Obrigado por esta explicação! Eu li uma documentação em francês que dizia que o ipv4 era a configuração PADRÃO. Coloquei o ipv4 agora e recarreguei o Postfix, parece funcionar. Obrigado novamente !
Vincent LITUR 21/02
Depende de qual versão do Postfix você está usando - não me lembro de qual versão padrão, mas sei que elas foram alteradas pelo menos uma vez.
Jenny D diz Restabelecer Monica
7
Não é a conexão que falha, mas a pesquisa de DNS que a precede. Quando eu tenho, inet_protocols = allele não tenta uma Apesquisa se uma AAAApesquisa falhar, o que parece inútil. Além disso, se você alterar esse valor, reinicie o postfix, não apenas recarregue.
Synchro
0

A configuração simples do Postfix que funcionou para mim.

/etc/postfix/main.cf

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

A seguinte alteração no /etc/postfix/main.cf resolveu o problema para mim.

inet_protocols = ipv6 

Mude o acima para

inet_protocols = all
selche
fonte
8
Não adiciona muito à resposta aceita e, para ser franco, é inútil sem o post de JennyD, que fornece a explicação .
Deer Hunter