Exim4中拒绝子域名相关邮件及特定邮箱邮件的技术咨询
Exim4中拒绝子域名相关邮件及特定邮箱邮件的技术咨询
当然可以啦!Exim4的配置灵活性拉满,不管是要拒绝整个子域名的邮件,还是临时拦截某个特定邮箱,都有靠谱的实现方法,下面给你一步步拆解:
一、拒绝整个子域名(比如sub.example.com)的邮件
有两种常用方式,按需选就行:
- ACL收件阶段拦截:这是最常用的方法。你可以编辑Exim4的主配置文件(通常是
/etc/exim4/exim4.conf,如果是拆分配置结构,就找/etc/exim4/conf.d/acl/acl_check_rcpt),在收件检查的ACL段落里加这么一段规则:
deny domains = sub.example.com message = Emails to sub.example.com are temporarily rejected
保存配置后,所有发往sub.example.com下任何邮箱的邮件都会被直接拒绝,发送方会收到你设置的提示信息。
- 用redirect路由器拦截:如果是临时需求,也可以通过路由器来实现。在配置文件的路由器部分添加:
reject_subdomain: driver = redirect domains = sub.example.com allow_fail data = :fail: Emails to this subdomain are temporarily blocked
这种方式会直接返回失败状态码,明确告诉发送方该子域名的邮件无法送达。
二、临时拒绝特定邮箱(比如new-task@sub.example.com)
针对你提到的“用户循环发邮件导致连接过多”的场景,精准拦截单个邮箱就够了,还是用ACL来实现:
编辑收件检查的ACL,添加以下规则:
deny recipients = new-task@sub.example.com message = Emails to new-task@sub.example.com are temporarily rejected due to excessive connections
这个规则只会拦截发往new-task@sub.example.com的邮件,其他邮箱完全不受影响,刚好能打断邮件循环,缓解服务器的连接压力。
最后提醒
修改完配置后,记得重启Exim4服务让配置生效,命令是:
systemctl restart exim4 # Debian/Ubuntu系系统 # 或者 service exim restart # 其他类Unix系统
如果后续需要恢复服务,只要把对应的规则注释掉或者删除,再重启服务就可以啦。
备注:内容来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

