我想知道如何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”);
}
}