2.3. 配置 Postfix ,来将所有电子邮件转发到邮件中继
如果要将所有电子邮件转发到邮件中继,您可以将 Postfix 服务器配置为 null 客户端。在此配置中,Postfix 仅将邮件转发到不同的邮件服务器,且无法接收邮件。
先决条件
- 您有 root 访问权限。
-
您的服务器上已安装了
postfix
软件包。 - 您有要将电子邮件转发到的中继主机的 IP 地址或主机名。
流程
要防止 Postfix 接受任何本地电子邮件发送,并使其成为 null 客户端,请编辑
/etc/postfix/main.cf
文件,并进行以下更改:通过将
mydestination
参数设置为空值,将 Postfix 配置为转发所有电子邮件:mydestination =
mydestination =
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在此配置中,Postfix 服务器不是任何电子邮件的目的地,并充当 null 客户端。
指定从您的 null 客户端接收电子邮件的邮件中继服务器:
relayhost = [<ip_address_or_hostname>]
relayhost = [<ip_address_or_hostname>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 中继主机负责邮件发送。将
<ip_address_or_hostname>
括在方括号中。将 Postfix 邮件服务器配置为仅侦听用于发送电子邮件的回环接口:
inet_interfaces = loopback-only
inet_interfaces = loopback-only
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您希望 Postfix 将所有传出电子邮件的发件人域重写为中继邮件服务器的公司域,请设置:
myorigin = relay.example.com
myorigin = relay.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用本地邮件发送,请在配置文件末尾添加以下指令:
local_transport = error: local delivery disabled
local_transport = error: local delivery disabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
mynetworks
参数,以便 Postfix 将来自 127.0.0.0/8 IPv4 网络和 [::1]/128 IPv6 网络的本地系统的电子邮件转发到邮件中继服务器:mynetworks = 127.0.0.0/8, [::1]/128
mynetworks = 127.0.0.0/8, [::1]/128
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
main.cf
文件中的 Postfix 配置是否正确:postfix check
# postfix check
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
postfix
服务以应用更改:systemctl restart postfix
# systemctl restart postfix
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证电子邮件通信是否已转发到邮件中继:
echo "This is a test message" | mail -s <subject> <user@example.com>
# echo "This is a test message" | mail -s <subject> <user@example.com>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
-
如果出现错误,请检查
/var/log/maillog
文件。