我尝试将一个域“ourdomain.tld”的所有邮件从运行在一个接口的端口 2525 上的 Postfix 转发到运行在同一台机器上另一个接口的端口 25 上的另一个 SMTP 服务器。但是,当收到该域的邮件时,我们收到“邮件循环回到我自己”错误。
下面是 netstat 和 postconf、我们的 /etc/postfix/transport 文件的内容以及 Postfix 正在记录的错误。(每个 IP 地址的高字节都被 XXXed 掉了。)我是否遗漏了一些显而易见的东西?谢谢 -
# netstat -ln -A inet
Proto Recv-Q Send-Q Local Address Foreign Address State
...
tcp 0 0 XXX.XXX.138.209:25 0.0.0.0:* LISTEN
tcp 0 0 XXX.XXX.138.210:2525 0.0.0.0:* LISTEN
# postconf -d | grep mail_version
mail_version = 2.8.4
# postconf -n
alias_maps = hash:/etc/aliases
allow_mail_to_commands = alias,forward
bounce_queue_lifetime = 0
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
default_privs = nobody
default_process_limit = 200
html_directory = no
inet_interfaces = XXX.XXX.138.210
local_recipient_maps =
local_transport = error:local mail delivery is disabled
mail_owner = postfix
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
message_size_limit = 10240000
mydestination =
mydomain = ourdomain.tld
myhostname = ourdomain.tld
mynetworks = XXX.XXX.119.0/24, XXX.XXX.138.0/24, XXX.XXX.136.128/25
myorigin = ourdomain.tld
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /etc/postfix
recipient_delimiter = +
relay_domains = ourdomain.tld
relay_recipient_maps =
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_authorized_verp_clients = $mynetworks
smtpd_recipient_limit = 10000
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450
# cat /etc/postfix/transport
ourdomain.tld relay:[XXX.XXX.138.209]:25
# tail -f /var/log/maillog
...
Aug 2 23:58:36 va4 postfix/smtp[9846]: 9858A758404: to=<nicwolff@...
>, relay=XXX.XXX.138.209[XXX.XXX.138.209]:25, delay=1.1, delays=0.08/0.01/1/0,
dsn=5.4.6, status=bounced (mail for [XXX.XXX.138.209]:25 loops back to myself)
答案1
您不能这样做。您的配置中说mydomain = ourdomain.tld
您不能将该域中继到“外部”,因为您告诉 Postfix 它(并且只有该实例)负责该域。
设置mydomain = localhost, localhost.localdomain
后您的问题应该就解决了。为确保万无一失,您还应该设置myhostname = something.ourdomain.tld
答案2
问题出在您的 DNS 记录中。您尝试转发的域的 MX 会将邮件发送回尝试进行转发的机器,从而“循环回到我自己”。
我有点明白什么你想这么做,但我不明白为什么,所以我对于你应该怎么做没有好的建议。
答案3
检查以下路径
vim /etc/sysconfig/network
如果这样的话。
NETWORKING=yes
HOSTNAME=mail
GATEWAY=XXX.XX.XX.XX
仅将 HOSTNAME 更改为您的完整合格域名
HOSTNAME=mail.abc.com
重启电脑并检查