CentOS 8.x Zimbra Configure spamassasin email score based on client RBL

From Notes_Wiki

Home > CentOS > CentOS 8.x > CentOS 8.x email servers > CentOS 8.x Zimbra > CentOS 8.x Zimbra Configure spamassasin email score based on client RBL

Traditionally any sender email IP was looked among various client RBLs and if found to be blacklisted, the email was rejected right away. This created issue if any important contact's email server was in any blacklist. This left option of either stopping to use that blacklist or adding the email server IP as part of trusted MyNetworks list. Both these options are unmanageable in long run.

If you look at blacklists such as https://spfbl.net/en/dnsbl they are clearly specify that they should not be used for direct rejection. They should only be used for scoring such that at most email goes to junk folder.

Thanksfully there is option in Zimbra to use client RBLs for scoring instead of rejecting complete email. For that use following steps:

  1. Stop referring to any client RBLs at admin interface Configure -> Global Settings -> MTA
    If required use 'zmmtactl restart' after removing the MTA level client RBLs.
  2. Create a list of blacklists to use for scoring, for example, there is a list at https://wiki.zimbra.com/wiki/Customized_spam_score_for_RBL_listed_senders Recommended list is captured at #Recommended RBL List
  3. Convert the list to spamassasin configuration format such as:
    header CUSTOM_LOOKUP eval:check_rbl('zen','zen.spamhaus.org.')
    describe CUSTOM_LOOKUP Entries listed in zen.spamhaus.org RBL
    score CUSTOM_LOOKUP 2.0
    where CUSTOM_LOOKUP key in the three lines must match. For any future rules we should use a different key such as CUSTOM_LOOKUP_2, CUSTOM_LOOKUP_3, etc.
  4. To do this we can use program. Example erlang escript that can take a list of domains and convert it to spamassassin config is captured at #Erlang script for conversion
  5. If you plan to use the recommended rbl list as it is then you can directly use #Recommended spamassasin configuration
  6. The config lines should be inserted in file '/opt/zimbra/conf/salocal.cf.in' after existing header/describe/score rules.
    Note creating sub-folder /opt/zimbra/conf/sa and creating custom .cf file in it as per https://wiki.zimbra.com/wiki/Anti-spam_Strategies does not works
  7. After inserting the config restart services as zimbra user using:
    zmamavisdctl restart
    zmmtactl restart
  8. After this send email from public server (eg gmail) to your server. The headers should contain something similar to:
    X-Spam-Status: No, score=3.303 required=6.6 tests=[BAYES_00=-1.9,
    RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001,
    RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001]
    autolearn=no autolearn_force=no
    where CUSTOM_LOOKUP_27, 50 and 62 are some of the blacklists that seem to have the sender server email ID in the blacklist.
  9. Now over time we can adjust score of various blacklists to suit organization needs. If some blacklist is having too many customer contact addresses then we can reduce score from 2.0 to a much lower value, even 0.0 (Basically not using the list). Similarly if some list is very good at catching spam perhaps increase its score from 2.0 to 4.0 or higher.

Enable all SPAM to be delivered to junk folder

By default Zimbra discards (not even rejects) any email with 75%+ spam score. This can be an issue if we are experimenting with SPAM scores. To ensure that no email gets at least to user Junk folder use:

su - zimbra
zmprov mcf zimbraAmavisFinalSpamDestiny D_PASS
zmprov ms <mta server> zimbraAmavisFinalSpamDestiny D_PASS
zmcontrol restart

To see if any emails were discarded in a particular log file use:

   grep -i discard /var/log/zimbra.log


Increasing trust of emails coming from my networks

In Zimbra there is setting for mynetworks CentOS 7.x Zimbra MTA configuration. If we want to trust these emails (including internal emails from within the server) then we can use:

score ALL_TRUSTED -6.000

in /opt/zimbra/conf/salocal.cf.in file. By default ALL_TRUSTED score is -1 but if internal users forward emails with many screenshots, attachments, long body with many spam related keywords, etc. even internal emails score can be very low. Using ALL_TRUSTED as -6 solves that problem.

This should be done if we are using external anti-spam for incoming/outgoing emails and we do not want Zimbra to reject emails coming from anti-spam due to SPF etc. failures. Assuming external anti-spam is added as part of ZimbraMynetworks already.

Recommended RBL List

For RBL purposes consider using below list:


Erlang script for conversion

The below script takes one file name as argument. That file should contain list of client rbl domains. It prints required spamassasin configuration on terminal output:

#!/usr/bin/env escript

main([RBL_file1]) ->
    io:format("Received input file name ~p~n",[RBL_file1]),
    io:format("Assuming input was already passed via sort -u~n"),
    {ok, RBL1}=file:read_file(RBL_file1),
    RBL2 = string:tokens(binary_to_list(RBL1), "\n "),
    io:format("RBL list is ~p~n",[RBL2]),
    io:format("Spamassasin config for /opt/zimbra/conf/ca/rbl.cf is~n~n~n"),

build_spam_conf([], _) ->
build_spam_conf([H1|T1], N1) ->
    io:format("header CUSTOM_LOOKUP_~p eval:check_rbl('~s','~s.')~n", [N1, H1, H1]),
    io:format("describe CUSTOM_LOOKUP_~p Entries listed in ~s RBL~n", [N1, H1]),
    io:format("score CUSTOM_LOOKUP_~p 0.5~n",[N1]),
    build_spam_conf(T1, N1+1).

Recommended spamassasin configuration

If you run #Recommended RBL List through #Erlang script for conversion you will get below output which can be directly inserted into spamassasin config file in Zimbra server.

header CUSTOM_LOOKUP_1 eval:check_rbl('all.s5h.net','all.s5h.net.')
describe CUSTOM_LOOKUP_1 Entries listed in all.s5h.net RBL
score CUSTOM_LOOKUP_1 0.5

header CUSTOM_LOOKUP_2 eval:check_rbl('b.barracudacentral.org','b.barracudacentral.org.')
describe CUSTOM_LOOKUP_2 Entries listed in b.barracudacentral.org RBL
score CUSTOM_LOOKUP_2 0.5

header CUSTOM_LOOKUP_3 eval:check_rbl('blackholes.five-ten-sg.com','blackholes.five-ten-sg.com.')
describe CUSTOM_LOOKUP_3 Entries listed in blackholes.five-ten-sg.com RBL
score CUSTOM_LOOKUP_3 0.5

header CUSTOM_LOOKUP_4 eval:check_rbl('blacklist.woody.ch','blacklist.woody.ch.')
describe CUSTOM_LOOKUP_4 Entries listed in blacklist.woody.ch RBL
score CUSTOM_LOOKUP_4 0.5

header CUSTOM_LOOKUP_5 eval:check_rbl('bl.drmx.org','bl.drmx.org.')
describe CUSTOM_LOOKUP_5 Entries listed in bl.drmx.org RBL
score CUSTOM_LOOKUP_5 0.5

header CUSTOM_LOOKUP_6 eval:check_rbl('bl.mailspike.net','bl.mailspike.net.')
describe CUSTOM_LOOKUP_6 Entries listed in bl.mailspike.net RBL
score CUSTOM_LOOKUP_6 0.5

header CUSTOM_LOOKUP_7 eval:check_rbl('bl.spamcop.net','bl.spamcop.net.')
describe CUSTOM_LOOKUP_7 Entries listed in bl.spamcop.net RBL
score CUSTOM_LOOKUP_7 0.5

header CUSTOM_LOOKUP_8 eval:check_rbl('bl.spamcop.net','bl.spamcop.net.')
describe CUSTOM_LOOKUP_8 Entries listed in bl.spamcop.net RBL
score CUSTOM_LOOKUP_8 0.5

header CUSTOM_LOOKUP_9 eval:check_rbl('bl.spameatingmonkey.net','bl.spameatingmonkey.net.')
describe CUSTOM_LOOKUP_9 Entries listed in bl.spameatingmonkey.net RBL
score CUSTOM_LOOKUP_9 0.5

header CUSTOM_LOOKUP_10 eval:check_rbl('bogons.cymru.com','bogons.cymru.com.')
describe CUSTOM_LOOKUP_10 Entries listed in bogons.cymru.com RBL
score CUSTOM_LOOKUP_10 0.5

header CUSTOM_LOOKUP_11 eval:check_rbl('bsb.empty.us','bsb.empty.us.')
describe CUSTOM_LOOKUP_11 Entries listed in bsb.empty.us RBL
score CUSTOM_LOOKUP_11 0.5

header CUSTOM_LOOKUP_12 eval:check_rbl('cbl.abuseat.org','cbl.abuseat.org.')
describe CUSTOM_LOOKUP_12 Entries listed in cbl.abuseat.org RBL
score CUSTOM_LOOKUP_12 0.5

header CUSTOM_LOOKUP_13 eval:check_rbl('cdl.anti-spam.org.cn','cdl.anti-spam.org.cn.')
describe CUSTOM_LOOKUP_13 Entries listed in cdl.anti-spam.org.cn RBL
score CUSTOM_LOOKUP_13 0.5

header CUSTOM_LOOKUP_14 eval:check_rbl('combined.abuse.ch','combined.abuse.ch.')
describe CUSTOM_LOOKUP_14 Entries listed in combined.abuse.ch RBL
score CUSTOM_LOOKUP_14 0.5

header CUSTOM_LOOKUP_15 eval:check_rbl('db.wpbl.info','db.wpbl.info.')
describe CUSTOM_LOOKUP_15 Entries listed in db.wpbl.info RBL
score CUSTOM_LOOKUP_15 0.5

header CUSTOM_LOOKUP_16 eval:check_rbl('dnsbl-1.uceprotect.net','dnsbl-1.uceprotect.net.')
describe CUSTOM_LOOKUP_16 Entries listed in dnsbl-1.uceprotect.net RBL
score CUSTOM_LOOKUP_16 0.5

header CUSTOM_LOOKUP_17 eval:check_rbl('dnsbl-2.uceprotect.net','dnsbl-2.uceprotect.net.')
describe CUSTOM_LOOKUP_17 Entries listed in dnsbl-2.uceprotect.net RBL
score CUSTOM_LOOKUP_17 0.5

header CUSTOM_LOOKUP_18 eval:check_rbl('dnsbl-3.uceprotect.net','dnsbl-3.uceprotect.net.')
describe CUSTOM_LOOKUP_18 Entries listed in dnsbl-3.uceprotect.net RBL
score CUSTOM_LOOKUP_18 0.5

header CUSTOM_LOOKUP_19 eval:check_rbl('dnsbl.anticaptcha.net','dnsbl.anticaptcha.net.')
describe CUSTOM_LOOKUP_19 Entries listed in dnsbl.anticaptcha.net RBL
score CUSTOM_LOOKUP_19 0.5

header CUSTOM_LOOKUP_20 eval:check_rbl('dnsbl.calivent.com.pe','dnsbl.calivent.com.pe.')
describe CUSTOM_LOOKUP_20 Entries listed in dnsbl.calivent.com.pe RBL
score CUSTOM_LOOKUP_20 0.5

header CUSTOM_LOOKUP_21 eval:check_rbl('dnsbl.cobion.com','dnsbl.cobion.com.')
describe CUSTOM_LOOKUP_21 Entries listed in dnsbl.cobion.com RBL
score CUSTOM_LOOKUP_21 0.5

header CUSTOM_LOOKUP_22 eval:check_rbl('dnsbl.cyberlogic.net','dnsbl.cyberlogic.net.')
describe CUSTOM_LOOKUP_22 Entries listed in dnsbl.cyberlogic.net RBL
score CUSTOM_LOOKUP_22 0.5

header CUSTOM_LOOKUP_23 eval:check_rbl('dnsbl.dronebl.org','dnsbl.dronebl.org.')
describe CUSTOM_LOOKUP_23 Entries listed in dnsbl.dronebl.org RBL
score CUSTOM_LOOKUP_23 0.5

header CUSTOM_LOOKUP_24 eval:check_rbl('dnsbl.inps.de','dnsbl.inps.de.')
describe CUSTOM_LOOKUP_24 Entries listed in dnsbl.inps.de RBL
score CUSTOM_LOOKUP_24 0.5

header CUSTOM_LOOKUP_25 eval:check_rbl('dnsbl.kempt.net','dnsbl.kempt.net.')
describe CUSTOM_LOOKUP_25 Entries listed in dnsbl.kempt.net RBL
score CUSTOM_LOOKUP_25 0.5

header CUSTOM_LOOKUP_26 eval:check_rbl('dnsbl.rv-soft.info','dnsbl.rv-soft.info.')
describe CUSTOM_LOOKUP_26 Entries listed in dnsbl.rv-soft.info RBL
score CUSTOM_LOOKUP_26 0.5

header CUSTOM_LOOKUP_27 eval:check_rbl('dnsbl.sorbs.net','dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_27 Entries listed in dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_27 0.5

#header CUSTOM_LOOKUP_28 eval:check_rbl('dnsbl.spfbl.net','dnsbl.spfbl.net.')
#describe CUSTOM_LOOKUP_28 Entries listed in dnsbl.spfbl.net RBL
#score CUSTOM_LOOKUP_28 0.5

header CUSTOM_LOOKUP_29 eval:check_rbl('dnsrbl.org','dnsrbl.org.')
describe CUSTOM_LOOKUP_29 Entries listed in dnsrbl.org RBL
score CUSTOM_LOOKUP_29 0.5

header CUSTOM_LOOKUP_30 eval:check_rbl('drone.abuse.ch','drone.abuse.ch.')
describe CUSTOM_LOOKUP_30 Entries listed in drone.abuse.ch RBL
score CUSTOM_LOOKUP_30 0.5

header CUSTOM_LOOKUP_31 eval:check_rbl('drone.abuse.ch','drone.abuse.ch.')
describe CUSTOM_LOOKUP_31 Entries listed in drone.abuse.ch RBL
score CUSTOM_LOOKUP_31 0.5

header CUSTOM_LOOKUP_32 eval:check_rbl('duinv.aupads.org','duinv.aupads.org.')
describe CUSTOM_LOOKUP_32 Entries listed in duinv.aupads.org RBL
score CUSTOM_LOOKUP_32 0.5

header CUSTOM_LOOKUP_33 eval:check_rbl('dul.dnsbl.sorbs.net','dul.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_33 Entries listed in dul.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_33 0.5

header CUSTOM_LOOKUP_34 eval:check_rbl('dyna.spamrats.com','dyna.spamrats.com.')
describe CUSTOM_LOOKUP_34 Entries listed in dyna.spamrats.com RBL
score CUSTOM_LOOKUP_34 0.5

header CUSTOM_LOOKUP_35 eval:check_rbl('dynip.rothen.com','dynip.rothen.com.')
describe CUSTOM_LOOKUP_35 Entries listed in dynip.rothen.com RBL
score CUSTOM_LOOKUP_35 0.5

header CUSTOM_LOOKUP_36 eval:check_rbl('exitnodes.tor.dnsbl.sectoor.de','exitnodes.tor.dnsbl.sectoor.de.')
describe CUSTOM_LOOKUP_36 Entries listed in exitnodes.tor.dnsbl.sectoor.de RBL
score CUSTOM_LOOKUP_36 0.5

header CUSTOM_LOOKUP_37 eval:check_rbl('http.dnsbl.sorbs.net','http.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_37 Entries listed in http.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_37 0.5

header CUSTOM_LOOKUP_38 eval:check_rbl('ips.backscatterer.org','ips.backscatterer.org.')
describe CUSTOM_LOOKUP_38 Entries listed in ips.backscatterer.org RBL
score CUSTOM_LOOKUP_38 0.5

header CUSTOM_LOOKUP_39 eval:check_rbl('ix.dnsbl.manitu.net','ix.dnsbl.manitu.net.')
describe CUSTOM_LOOKUP_39 Entries listed in ix.dnsbl.manitu.net RBL
score CUSTOM_LOOKUP_39 0.5

header CUSTOM_LOOKUP_40 eval:check_rbl('korea.services.net','korea.services.net.')
describe CUSTOM_LOOKUP_40 Entries listed in korea.services.net RBL
score CUSTOM_LOOKUP_40 0.5

header CUSTOM_LOOKUP_41 eval:check_rbl('mail-abuse.blacklist.jippg.org','mail-abuse.blacklist.jippg.org.')
describe CUSTOM_LOOKUP_41 Entries listed in mail-abuse.blacklist.jippg.org RBL
score CUSTOM_LOOKUP_41 0.5

header CUSTOM_LOOKUP_42 eval:check_rbl('misc.dnsbl.sorbs.net','misc.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_42 Entries listed in misc.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_42 0.5

header CUSTOM_LOOKUP_43 eval:check_rbl('noptr.spamrats.com','noptr.spamrats.com.')
describe CUSTOM_LOOKUP_43 Entries listed in noptr.spamrats.com RBL
score CUSTOM_LOOKUP_43 0.5

header CUSTOM_LOOKUP_44 eval:check_rbl('orvedb.aupads.org','orvedb.aupads.org.')
describe CUSTOM_LOOKUP_44 Entries listed in orvedb.aupads.org RBL
score CUSTOM_LOOKUP_44 0.5

#header CUSTOM_LOOKUP_45 eval:check_rbl('pbl.spamhaus.org','pbl.spamhaus.org.')
#describe CUSTOM_LOOKUP_45 Entries listed in pbl.spamhaus.org RBL
#score CUSTOM_LOOKUP_45 0.5

header CUSTOM_LOOKUP_46 eval:check_rbl('proxy.bl.gweep.ca','proxy.bl.gweep.ca.')
describe CUSTOM_LOOKUP_46 Entries listed in proxy.bl.gweep.ca RBL
score CUSTOM_LOOKUP_46 0.5

header CUSTOM_LOOKUP_47 eval:check_rbl('psbl.surriel.com','psbl.surriel.com.')
describe CUSTOM_LOOKUP_47 Entries listed in psbl.surriel.com RBL
score CUSTOM_LOOKUP_47 0.5

header CUSTOM_LOOKUP_48 eval:check_rbl('rbl.abuse.ro','rbl.abuse.ro.')
describe CUSTOM_LOOKUP_48 Entries listed in rbl.abuse.ro RBL
score CUSTOM_LOOKUP_48 0.5

header CUSTOM_LOOKUP_49 eval:check_rbl('rbl.interserver.net','rbl.interserver.net.')
describe CUSTOM_LOOKUP_49 Entries listed in rbl.interserver.net RBL
score CUSTOM_LOOKUP_49 0.5

header CUSTOM_LOOKUP_50 eval:check_rbl('recent.spam.dnsbl.sorbs.net','recent.spam.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_50 Entries listed in recent.spam.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_50 0.5

header CUSTOM_LOOKUP_51 eval:check_rbl('relays.bl.gweep.ca','relays.bl.gweep.ca.')
describe CUSTOM_LOOKUP_51 Entries listed in relays.bl.gweep.ca RBL
score CUSTOM_LOOKUP_51 0.5

header CUSTOM_LOOKUP_52 eval:check_rbl('relays.nether.net','relays.nether.net.')
describe CUSTOM_LOOKUP_52 Entries listed in relays.nether.net RBL
score CUSTOM_LOOKUP_52 0.5

header CUSTOM_LOOKUP_53 eval:check_rbl('sbl.spamhaus.org','sbl.spamhaus.org.')
describe CUSTOM_LOOKUP_53 Entries listed in sbl.spamhaus.org RBL
score CUSTOM_LOOKUP_53 0.5

header CUSTOM_LOOKUP_54 eval:check_rbl('sbl-xbl.spamhaus.org','sbl-xbl.spamhaus.org.')
describe CUSTOM_LOOKUP_54 Entries listed in sbl-xbl.spamhaus.org RBL
score CUSTOM_LOOKUP_54 0.5

header CUSTOM_LOOKUP_55 eval:check_rbl('short.rbl.jp','short.rbl.jp.')
describe CUSTOM_LOOKUP_55 Entries listed in short.rbl.jp RBL
score CUSTOM_LOOKUP_55 0.5

header CUSTOM_LOOKUP_56 eval:check_rbl('singular.ttk.pte.hu','singular.ttk.pte.hu.')
describe CUSTOM_LOOKUP_56 Entries listed in singular.ttk.pte.hu RBL
score CUSTOM_LOOKUP_56 0.5

header CUSTOM_LOOKUP_57 eval:check_rbl('smtp.dnsbl.sorbs.net','smtp.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_57 Entries listed in smtp.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_57 0.5

header CUSTOM_LOOKUP_58 eval:check_rbl('socks.dnsbl.sorbs.net','socks.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_58 Entries listed in socks.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_58 0.5

header CUSTOM_LOOKUP_59 eval:check_rbl('spam.abuse.ch','spam.abuse.ch.')
describe CUSTOM_LOOKUP_59 Entries listed in spam.abuse.ch RBL
score CUSTOM_LOOKUP_59 0.5

header CUSTOM_LOOKUP_60 eval:check_rbl('spambot.bls.digibase.ca','spambot.bls.digibase.ca.')
describe CUSTOM_LOOKUP_60 Entries listed in spambot.bls.digibase.ca RBL
score CUSTOM_LOOKUP_60 0.5

header CUSTOM_LOOKUP_61 eval:check_rbl('spam.dnsbl.anonmails.de','spam.dnsbl.anonmails.de.')
describe CUSTOM_LOOKUP_61 Entries listed in spam.dnsbl.anonmails.de RBL
score CUSTOM_LOOKUP_61 0.5

header CUSTOM_LOOKUP_62 eval:check_rbl('spam.dnsbl.sorbs.net','spam.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_62 Entries listed in spam.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_62 0.5

header CUSTOM_LOOKUP_63 eval:check_rbl('spamguard.leadmon.net','spamguard.leadmon.net.')
describe CUSTOM_LOOKUP_63 Entries listed in spamguard.leadmon.net RBL
score CUSTOM_LOOKUP_63 0.5

header CUSTOM_LOOKUP_64 eval:check_rbl('spamrbl.imp.ch','spamrbl.imp.ch.')
describe CUSTOM_LOOKUP_64 Entries listed in spamrbl.imp.ch RBL
score CUSTOM_LOOKUP_64 0.5

header CUSTOM_LOOKUP_65 eval:check_rbl('spamsources.fabel.dk','spamsources.fabel.dk.')
describe CUSTOM_LOOKUP_65 Entries listed in spamsources.fabel.dk RBL
score CUSTOM_LOOKUP_65 0.5

header CUSTOM_LOOKUP_66 eval:check_rbl('spam.spamrats.com','spam.spamrats.com.')
describe CUSTOM_LOOKUP_66 Entries listed in spam.spamrats.com RBL
score CUSTOM_LOOKUP_66 0.5

header CUSTOM_LOOKUP_67 eval:check_rbl('tor.dan.me.uk','tor.dan.me.uk.')
describe CUSTOM_LOOKUP_67 Entries listed in tor.dan.me.uk RBL
score CUSTOM_LOOKUP_67 0.5

header CUSTOM_LOOKUP_68 eval:check_rbl('truncate.gbudb.net','truncate.gbudb.net.')
describe CUSTOM_LOOKUP_68 Entries listed in truncate.gbudb.net RBL
score CUSTOM_LOOKUP_68 0.5

header CUSTOM_LOOKUP_69 eval:check_rbl('ubl.unsubscore.com','ubl.unsubscore.com.')
describe CUSTOM_LOOKUP_69 Entries listed in ubl.unsubscore.com RBL
score CUSTOM_LOOKUP_69 0.5

header CUSTOM_LOOKUP_70 eval:check_rbl('virbl.bit.nl','virbl.bit.nl.')
describe CUSTOM_LOOKUP_70 Entries listed in virbl.bit.nl RBL
score CUSTOM_LOOKUP_70 0.5

header CUSTOM_LOOKUP_71 eval:check_rbl('virus.rbl.jp','virus.rbl.jp.')
describe CUSTOM_LOOKUP_71 Entries listed in virus.rbl.jp RBL
score CUSTOM_LOOKUP_71 0.5

header CUSTOM_LOOKUP_72 eval:check_rbl('virus.rbl.jp','virus.rbl.jp.')
describe CUSTOM_LOOKUP_72 Entries listed in virus.rbl.jp RBL
score CUSTOM_LOOKUP_72 0.5

header CUSTOM_LOOKUP_73 eval:check_rbl('web.dnsbl.sorbs.net','web.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_73 Entries listed in web.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_73 0.5

header CUSTOM_LOOKUP_74 eval:check_rbl('xbl.spamhaus.org','xbl.spamhaus.org.')
describe CUSTOM_LOOKUP_74 Entries listed in xbl.spamhaus.org RBL
score CUSTOM_LOOKUP_74 0.5

#header CUSTOM_LOOKUP_75 eval:check_rbl('zen.spamhaus.org','zen.spamhaus.org.')
#describe CUSTOM_LOOKUP_75 Entries listed in zen.spamhaus.org RBL
#score CUSTOM_LOOKUP_75 0.5

header CUSTOM_LOOKUP_76 eval:check_rbl('zombie.dnsbl.sorbs.net','zombie.dnsbl.sorbs.net.')
describe CUSTOM_LOOKUP_76 Entries listed in zombie.dnsbl.sorbs.net RBL
score CUSTOM_LOOKUP_76 0.5


Additional references for future:

Home > CentOS > CentOS 8.x > CentOS 8.x email servers > CentOS 8.x Zimbra > CentOS 8.x Zimbra Configure spamassasin email score based on client RBL