如何配置Sendmail将所有邮件转发至另一主机?
如何配置Sendmail将所有邮件转发至另一主机?
我来帮你搞定这个配置!结合你提到的场景——Ubuntu主机有example.com的公网A记录,MX记录已经指向Google Workspace,网页应用依赖Sendmail发送表单邮件,而且你已经在Google那边开启了MTA中继并把服务器的IPv4加入了白名单,接下来咱们一步步配置Sendmail:
第一步:设置Sendmail的转发目标(智能主机)
先打开Sendmail的配置模板文件:
sudo nano /etc/mail/sendmail.mc
找到这一行(可能是空的或者有默认值):
define(`SMART_HOST', `')dnl
把它改成Google的中继服务器地址,这样Sendmail就知道要把所有外发邮件都交给这个中继处理:
define(`SMART_HOST', `smtp-relay.gmail.com')dnl
改完后保存退出编辑器。
第二步:生成实际生效的配置文件
Sendmail不认.mc格式的模板,得转换成它能读懂的.cf文件,执行这条命令就行:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
第三步:调整本地域名规则(避免本地投递)
编辑local-host-names文件,检查里面有没有你的域名example.com:
sudo nano /etc/mail/local-host-names
如果有这一行,直接删掉它——这样Sendmail就不会尝试在本地投递example.com的邮件,而是全部转发到咱们设置的中继主机。
第四步:重启Sendmail让配置生效
用systemd命令重启服务:
sudo systemctl restart sendmail
要是你的Ubuntu版本比较老,换成这条:
sudo service sendmail restart
第五步:测试配置是否正常
咱们用命令行发一封测试邮件验证下:
echo "这是来自Ubuntu主机的测试邮件,用于验证Sendmail中继配置" | sendmail -v your-test-email@xxx.com
加上-v参数能看到详细的发送过程,要是配置没问题,你很快就能在测试邮箱收到这封信啦。
这样配置完之后,你的网页应用通过Sendmail发送的表单邮件,就会自动转发到Google的MTA中继,再由Google Workspace完成最终的邮件投递~
备注:内容来源于stack exchange,提问作者Armen Michaeli
相关产品推荐
相关产品推荐

