Postfix如何配置以450响应码拒绝所有入站邮件?
Postfix如何配置以450响应码拒绝所有入站邮件?
没问题,这事儿在Postfix里完全能搞定,而且配置起来特别直接,我帮你捋清楚两种常用的配置方式,你可以根据自己的迁移需求选择:
情况1:拒绝外部入站邮件,允许本地/认证用户操作
如果迁移期间你还需要在旧服务器上做备份、管理等操作,同时拒绝外部来信,就用这种方式:
- 编辑Postfix的访问控制文件
/etc/postfix/access,添加自定义延迟规则:
* DEFER 邮件服务器正在迁移,请稍后重试(这条提示信息可以根据需要修改)
- 生成Postfix能识别的哈希数据库文件:
postmap /etc/postfix/access
- 修改Postfix主配置文件
/etc/postfix/main.cf,找到smtpd_recipient_restrictions配置项,把check_recipient_access规则放到最前面,确保优先匹配:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
- 重启Postfix让配置生效:
# 针对systemd系统(如Ubuntu 16.04+/CentOS 7+) systemctl restart postfix # 针对老版本SysVinit系统 service postfix restart
情况2:完全拒绝所有入站邮件(包括本地)
如果迁移期间不需要在旧服务器上做任何邮件操作,只想一刀切全部返回450,配置更简单:
直接修改/etc/postfix/main.cf里的smtpd_recipient_restrictions,改成:
smtpd_recipient_restrictions = defer
然后同样重启Postfix即可。
验证配置是否生效
你可以用telnet工具快速测试:
telnet 你的旧服务器域名/IP 25
然后依次输入:
HELO test.example.com MAIL FROM:<sender@example.com> RCPT TO:<任意用户@你的域名.com>
这时候应该会收到类似这样的响应:
450 4.7.1 <任意用户@你的域名.com>: Recipient address rejected: 邮件服务器正在迁移,请稍后重试
这样就说明配置成功了,发件服务器会根据450码自动稍后重试,完全符合你的迁移需求。
备注:内容来源于stack exchange,提问作者David Purdue
相关产品推荐
相关产品推荐

