我想知道如何configurationamavisd-new只扫描特定客户端(IP,CIDR或主机名)或发件人的电子邮件域的垃圾邮件。
我知道可以在收件人的邮件地址上填写,但不能填写发件人的邮件地址。 甚至有可能通过政策银行在收件人的IP地址上进行。 但是我的方法应该是独立于收件人,并且只在发件人上传递。
我想完成的只是扫描来自雅虎,谷歌,Hotmail和其他大发件人的邮件。 因此,configuration哪些发件人应该被观察比不应该被观察的更容易。
我知道在MTA方面实现起来比较容易,但这不是问题的一部分,因为我已经在MTA方面寻求解决scheme。 我想在amavisd-new上做。 并且知道如何将发件人放在白名单上也无济于事,因为这仍然意味着邮件经历了所有的扫描,但是却得到了很高的负面评分。 邮件不应该被扫描,除非大玩家发送。
那么amavisd-new中的哪个参数是对特定发件人扫描的唯一参数,而且仅限于这些参数?
Amavisd除了某些域名以外的所有白名单
你需要的是whitelist_sender_map( 这里 )正则expression式( 这里 )
白名单除Domain.X外
@whitelist_sender_maps =(new_RE( qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i ));
白名单除X的域和子域外
@whitelist_sender_maps =(new_RE( QR '[@]((GMAIL \ .COM $ |!hotmail的\ .COM $ | AOL \ .COM $))' 我 ));
修改
例如,添加msn.com白名单exception
@whitelist_sender_maps =(new_RE( QR '[@]((GMAIL \ .COM $ |!hotmail的\ .COM $ | AOL \ .COM $ | MSN \ .COM $))' 我 ));
不要把这个规则破坏成多条规则,这不是你想要的
打破2行或更多的规则将WHITELIST一切!
(如果可能的话,我会把这部分放在红色的部分)
简单来说,白名单是一个顺序检查,一次一行/一条规则。
让我们看看下面的错误例子
#不要复制这个 @whitelist_sender_maps =(new_RE( qr'@(?!(gmail\.com$|hotmail\.com$))'i, qr'@(?!(aol\.com$|msn\.com$))'i )); #不要复制这个
你最终将所有发件人列入白名单!
Perltesting程序
#!的/ usr / bin中/ perl的 严格使用 #拒绝域名和子域名 #my $ REGinfo ='==拒绝域名和子域==' #my $ REG = qr'[@。](?!(gmail \ .com $ | hotmail \ .com $ | aol \ .com $))'i; #只有确切的域名 我的$ REGinfo ='==精确域只=='; 我的$REG = qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i; 打印$ REGinfo。“\ n”; 打印'$ REG ='。$ REG。“\ n \ n”; 我的@strTest =( '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]' ); 对于我$(0 .. $#strTest){ if($ strTest [$ i] =〜$ REG){ print(“Pass $ strTest [$ i] \ n”); } else { print(“Fail $ strTest [$ i] \ n”); } }