mydomain.com 的 Postfix 邮件循环回我自己

Ome*_*ack 5 postfix

我在 ubuntu 10.04 上使用 vps 服务器,当我发送电子邮件时,我收到以下信息:

Mar 19 18:09:01 mail postfix/smtp[6340]: 8FAF722294: to=<root@mydomain.com>, orig_to=<root>, relay=none, delay=0.09, delays=0.08/0.01/0/0, dsn=5.4.6, status=bounced (mail for mydomain.com loops back to myself)
Run Code Online (Sandbox Code Playgroud)

我环顾信息论坛以找到解决方案,但即使我更改了 Postfix 设置也是徒劳的:

我的目的地设置是这样的

mail.mydomain.com, localhost.mydomain.com, , localhost
Run Code Online (Sandbox Code Playgroud)

我把它改成这个

$mail.mydomain.com, localhost, localhost.mydomain.com, mydomain.com
Run Code Online (Sandbox Code Playgroud)

我做了很多变化但仍然不起作用。

的输出cat /etc/mailname

mail.mydomain.com
Run Code Online (Sandbox Code Playgroud)

的输出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
inet_protocols = ipv4
mailbox_size_limit = 0
milter_default_action = accept
milter_protocol = 2
mydestination = localhost.$mydomain.com, localhost, mail.mydomain.com
myhostname = mail.dimonos.info
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 ip
myorigin = $mydomain
non_smtpd_milters = inet:localhost:8891
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_milters = inet:localhost:8891
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
Run Code Online (Sandbox Code Playgroud)

Bre*_*bad 4

根据评论:

问题是向hotmail.com发送邮件,因此问题不太可能链接到mydestination,并且似乎未设置 DNS 解析。

/etc/resolv.conf在这种情况下,请根据您的 ISP 数据(DNS 服务器)输入一个值,或者使用Google服务器 - 例如对于 Google:

nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

然后尝试解析hotmail.com的 MX 条目

host -t mx hotmail.com
Run Code Online (Sandbox Code Playgroud)

如果可行,您现在可以尝试向hotmail.com发送电子邮件

注意:如果您使用 NetworkManager,请使用它来设置 DNS 服务器值。

注意2:如果这不起作用,请显示最后几行/var/log/mail.log

--编辑 - 之前对本地交付问题的回答--

变量$mydomain一些信息)设置为本地计算机名称减去第一个组件(/etc/mailname在 Debian 上使用)。当您向root@mydomain.com发送邮件时,将执行 MX DNS 查询来确定预期接受邮件的服务器。第一步是检查该服务器是什么

host -t mx mydomain.com
Run Code Online (Sandbox Code Playgroud)

这将为您提供必须添加到mydestination的 postfix 的内容,以了解邮件将在本地投递,

mydestination = localhost.$mydomain, localhost, mail.$mydomain
Run Code Online (Sandbox Code Playgroud)

如果结果实际上是您的域名(您可以使用以下命令检查名称)

hostname
uname -n
Run Code Online (Sandbox Code Playgroud)

如果您获得 FQDN 实体,请删除第一个组件 - 例如,对于home.mydomain.com,posftix 设置的域是domain.com。并确保该值在mydestination中(如果它的值host与 $mydomain 相同,只需设置

mydestination = localhost.$mydomain, localhost, mail.$mydomain, $mydomain
Run Code Online (Sandbox Code Playgroud)