我有一个用于暂停帐户检查的 exim 路由器配置。我使用 perl 查找来验证被暂停的帐户,并且 perl 函数工作正常。
问题是,exim 仍然没有失败地传递消息。路由器设置如下,
suspendedcheck:
# check if sending user is suspened
driver = redirect
domains = +local_domains : $primary_hostname
condition = ${if eq{${perl{is_suspended}{$domain_data}{$local_part}}}{yes}{no}}
allow_fail
allow_defer
allow_freeze
data = :fail: Suspended account
no_more
exim日志如下,
2021-09-16 02:39:25 exim 4.94.2 daemon started: pid=612425, -q30m, listening for SMTP on port 25 (IPv6 and IPv4) port 587 (IPv6 and IPv4) and for SMTPS on port 465 (IPv6 and IPv4)
2021-09-16 02:39:27 1mQnrb-002ZKO-J5 <= foo@fun.com U=foo P=local S=394 T="Test mail" from <foo@fun.com> for dreamcatcher@foo.com
2021-09-16 02:39:27 1mQnrb-002ZKO-J5 Recipient account is suspened : dreamcatcher
2021-09-16 02:39:27 1mQnrb-002ZKO-J5 is suspend : yes
2021-09-16 02:39:28 1mQnrb-002ZKO-J5 => dreamcatcher <dreamcatcher@foo.com> F=<foo@fun.com> R=localuser T=dovecot_delivery S=531 C="250 2.0.0 <dreamcatcher@foo.com> qN8eNs8QQ2ESWAkAc3UdAg Saved"
2021-09-16 02:39:28 1mQnrb-002ZKO-J5 Completed
该路由器应该出现故障,但它仍在传递给 localuser 和传输 dovecot_delivery。
任何人都可以指出我正确的方向。