我们有一个反垃圾邮件系统,有时会产生误报。报告时,我们会验证错误触发的域或 IP 并将其列入白名单。但是,我想通过制作一个脚本来自动执行此操作,当我们服务器的某人发送消息时执行以下操作:
-> 如果发件人托管在我们的服务器上 -> 获取发件人和收件人 -> 键入命令 'spfbl superwhite add "[email protected]>[email protected]" '。
系统仅过滤托管在我们的 cPanel 服务器上的发件人非常重要(因此我们可以使用 /etc/localdomains 文件).. 但我不知道如何启动它。
有人有想法么?
非常感激。
更新
我已经设法使用 kondybas 提供的脚本进行了一些更改:
Section: PREROUTERS
whitelister:
driver = accept
domains = !+local_domains
condition = ${if match_domain{$sender_address_domain}{+local_domains}}
transport = whlist
no_more
-
Section: TRANSPORTSTART
whlist:
driver = pipe
command = /var/spool/exim/autoWH $local_part@$domain
和 /var/spool/exim/autoWH 文件:
#!/bin/sh
# Debug:
echo "Args recebidos: \$1 = $1" >> /var/spool/exim/log-transport.log
# Magica:
/var/spool/exim/spfbl.sh white sender $1
####
exim 拥有的文件夹中的所有内容,所以我没有权限问题。
哎呀.. 问题:使用这些参数,exim 没有投递邮件,因为它试图进行本地投递:本地投递失败
只需像这样添加路由器和传输:
和运输:
更新
更好的方法是调用一些 shell 脚本而不是直接调用实用程序。至少
exim
每次修改脚本时都没有重新启动:那么脚本应该是这样的: