日志
to=<[email protected]>, relay=none, delay=21311, delays=21301/0.04/10/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=localdomain type=MX: Host not found
操作系统:FreeBSD
当我在 postfix 客户端上运行以下命令时,它会解析。mail.p.example.com 托管我们的 postfix 服务器,然后将电子邮件中继到 gmail smtp。
host -t MX p.example.com
p.example.com mail is handled by 10 host.p.example.com.
我将我的 postfix 配置与另一台主机上的工作配置进行比较,它们是相同的。
inet_protocols = ipv4
mynetworks_style = host
inet_interfaces = loopback-only
relayhost = $mydomain
配置内容不只是我上面粘贴的内容,还包括其他内容,但与 dns 无关。smtp_host_lookup 尚未设置(默认值 = dns)。
/var/spool/postfix 下没有任何 resolv.conf 文件。如果能提供关于 postfix 如何解析 DNS 记录的说明,我将不胜感激。
答案1
啊哈,现在问题很明显了:
relayhost = $mydomain
您已将 Postfix 配置为将所有邮件发送至$mydomain
,该地址设置为localdomain
。
您的叙述表明您打算将邮件转发到 Gmail,因此您relayhost
应该设置为合适的为此目的,请使用 Google 主机名,例如:
relayhost = [smtp-relay.gmail.com]:25
或者
relayhost = [smtp-relay.gmail.com]:587
如果您使用 SMTP 身份验证,则您smtp_sasl_password_maps
应该指向包含您的 Gmail 凭据的文件。
答案2
hostname -f
在导致问题的主机上无法解析为 FQDN。它只能解析为短名称。在 Postfix 客户端正在运行的主机上,它解析为 FQDN
主机名已在 /etc/rc.conf.d/hostname 下设置。我只需重新启动主机名服务。猜想有人通过运行命令而不是使用配置管理工具来手动设置主机名/域名。