如何configurationamavisd-new仅在特定发件人/服务器上扫描?

我想知道如何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
     ));
     #不要复制这个
    
    1. msn.com中的任何内容都会通过,因为第一行返回TRUE ,并且检查停止。
    2. gamil.com的任何内容都会通过,因为在第一行失败之后,amavisd移动到第二行,这将返回TRUE
    3. 怎么样域名不在列表中? 他们会通过。 这是规则的意图!

    你最终将所有发件人列入白名单!

    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”);
         }
     }