Postfix-找不到主机或域


22

我刚刚在本地网络上的Ubuntu上安装了Postfix。

在此网络上,我有一个Exchange Server(使用domain mail.example.com)。我在向本地地址发送电子邮件时遇到问题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)

relay_domain在Postfix中解决了这个问题main.cf

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

在我的/etc/postfix/transport

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

现在,我可以在上发送邮件@example.com,并且已经测试了一些专业的网络邮件(Gmail,Yahoo,Hotmail ...)。有用。但是,为什么我的地址出现此错误@example.com?如何确定我在另一个域上找不到此错误?

我的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

您可以将postconf -n的输出添加到问题中吗?
ALex_hha 2014年

您正在使用ipv6吗?
ALex_hha 2014年

我现在将postfix配置更改为仅使用ipv4。观望..
文森特·利特(Richard)2014年

Answers:


33

您的服务器在发送邮件时尝试使用IPv6。由于mail.example.com没有AAAA记录(与A记录相同,但适用于IPv6),因此无法正常工作。

如果您希望Postfix 从不使用IPv6,则可以在配置文件中进行更改,如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

如果您只想为该域更改它,请将传输地图更改为

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

感谢您的解释!我阅读了一份法文文档,其中说ipv4是DEFAULT配置。.现在放ipv4,并重新加载Postfix,似乎可以正常工作。再次感谢 !
Vincent LITUR

这取决于您使用的是哪个版本的Postfix-我不记得哪个版本默认使用哪个版本,但是我知道他们至少更改了一次。
珍妮D说恢复莫妮卡2014年

7
不是连接失败,而是连接之前的DNS查找。当我拥有时inet_protocols = allA如果AAAA查找失败,则不尝试查找,这似乎毫无意义。另外,如果更改此值,则必须重新启动后缀,而不仅仅是重新加载。
同步

0

对我有用的简单Postfix配置。

/etc/postfix/main.cf

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

-5

/etc/postfix/main.cf中的以下更改为我解决了该问题。

inet_protocols = ipv6 

将以上更改为

inet_protocols = all

9
不会为接受的答案增加太多,并且坦率地说,没有JennyD的帖子提供了解释,这是没有用的。
猎鹿人2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.