# # 2003-2007 Victor Ustugov # # проверка количества цифр в: # 1. sender hostname # 2. левой части sender hostname # 3. sender helo # 4. левой части sender helo # 5. header from # 6. левой части header from # 7. envelope from # 8. левой части envelope from # # под левой частью понимается часть до первой точки # # правила работоспособны при работе с: # 1. spamassassin # 2. spamc # 3. spamass-milter # 4. exix # # для проверки envelope from в exim нужен патч # https://mta.org.ua/exim/patches/exim-4.65-spool_mbox/patch-src::spool_mbox.patch # header __RECEIVED_SENDMAIL Received =~ /^\s*from \S+ \((\S+ )*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]( \(.+?\))*\)\s*by\s+\S+\s*\([\d\w\.]+\/[\d\w\.]+\)/ header __RECEIVED_SPAMASS_MILTER Received =~ /^\s*from \S+ \((\S+ )*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]( \(.+?\))*\)\s*by\s+\S+\.?; / meta __DIGITS_SENDMAIL __RECEIVED_SENDMAIL || __RECEIVED_SPAMASS_MILTER ###################################################################### # проверка sender hostname header __DIGITS_HOSTNAME_EXISCAN_SKIP Received =~ /^\s*from\s+(bay\d+-f\d+.bay\d+\.hotmail\.com|web\d+\.mail\.mud\.yahoo\.com|\d+.\d+.\d+.\d+.iptelecom.net.ua)/ header __DIGITS_HOSTNAME_SENDMAIL_SKIP Received =~ /^\s*from\s+\S+\s*\(\s*(bay\d+-f\d+.bay\d+\.hotmail\.com|web\d+\.mail\.mud\.yahoo\.com|\d+.\d+.\d+.\d+.iptelecom.net.ua)/ # правило срабатывает при 7 цифрах в sender hostname header __DIGITS_HOSTNAME07_EXISCAN Received =~ /^\s*from\s+((\S*\d){7,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME07_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*([^\[\s]*?\d){7,}\S*/ meta __DIGITS_HOSTNAME07 (__DIGITS_HOSTNAME07_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME07_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME07 __DIGITS_HOSTNAME07 && !__DIGITS_HOSTNAME08 describe DIGITS_HOSTNAME07 There are 7 digits in the sender hostname score DIGITS_HOSTNAME07 1.0 # правило срабатывает при 8 цифрах в sender hostname header __DIGITS_HOSTNAME08_EXISCAN Received =~ /^\s*from\s+((\S*\d){8,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME08_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*([^\[\s]*?\d){8,}\S*/ meta __DIGITS_HOSTNAME08 (__DIGITS_HOSTNAME08_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME08_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME08 __DIGITS_HOSTNAME08 && !__DIGITS_HOSTNAME09 describe DIGITS_HOSTNAME08 There are 8 digits in the sender hostname score DIGITS_HOSTNAME08 1.5 # правило срабатывает при 9 цифрах в sender hostname header __DIGITS_HOSTNAME09_EXISCAN Received =~ /^\s*from\s+((\S*\d){9,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME09_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*([^\[\s]*?\d){9,}\S*/ meta __DIGITS_HOSTNAME09 (__DIGITS_HOSTNAME09_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME09_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME09 __DIGITS_HOSTNAME09 && !__DIGITS_HOSTNAME10 describe DIGITS_HOSTNAME09 There are 9 digits in the sender hostname score DIGITS_HOSTNAME09 1.7 # правило срабатывает при 10 и более цифр в sender hostname header __DIGITS_HOSTNAME10_EXISCAN Received =~ /^\s*from\s+((\S*\d){10,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME10_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*([^\[\s]*?\d){10,}\S*/ meta __DIGITS_HOSTNAME10 (__DIGITS_HOSTNAME10_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME10_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME10 __DIGITS_HOSTNAME10 describe DIGITS_HOSTNAME10 There are 10 or more digits in the sender hostname score DIGITS_HOSTNAME10 1.8 ###################################################################### # проверка левой части sender hostname # правило срабатывает при 6 цифрах в левой части sender hostname header __DIGITS_HOSTNAME06_B_EXISCAN Received =~ /^\s*from\s+(([^\.\s]*?\d){6,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME06_B_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*(([^\.\s\[]*?\d){6,}\S*)/ meta __DIGITS_HOSTNAME06_B (__DIGITS_HOSTNAME06_B_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME06_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME06_B __DIGITS_HOSTNAME06_B && !__DIGITS_HOSTNAME07_B describe DIGITS_HOSTNAME06_B There are 6 digits in the begin of the sender hostname score DIGITS_HOSTNAME06_B 1.0 # правило срабатывает при 7 цифрах в левой части sender hostname header __DIGITS_HOSTNAME07_B_EXISCAN Received =~ /^\s*from\s+(([^\.\s]*?\d){7,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME07_B_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*(([^\.\s\[]*?\d){7,}\S*)/ meta __DIGITS_HOSTNAME07_B (__DIGITS_HOSTNAME07_B_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME07_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME07_B __DIGITS_HOSTNAME07_B && !__DIGITS_HOSTNAME08_B describe DIGITS_HOSTNAME07_B There are 7 digits in the begin of the sender hostname score DIGITS_HOSTNAME07_B 1.5 # правило срабатывает при 8 цифрах в левой части sender hostname header __DIGITS_HOSTNAME08_B_EXISCAN Received =~ /^\s*from\s+(([^\.\s]*?\d){8,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME08_B_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*(([^\.\s\[]*?\d){8,}\S*)/ meta __DIGITS_HOSTNAME08_B (__DIGITS_HOSTNAME08_B_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME08_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME08_B __DIGITS_HOSTNAME08_B && !__DIGITS_HOSTNAME09_B describe DIGITS_HOSTNAME08_B There are 8 digits in the begin of the sender hostname score DIGITS_HOSTNAME08_B 1.8 # правило срабатывает при 9 цифрах в левой части sender hostname header __DIGITS_HOSTNAME09_B_EXISCAN Received =~ /^\s*from\s+(([^\.\s]*?\d){9,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME09_B_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*(([^\.\s\[]*?\d){9,}\S*)/ meta __DIGITS_HOSTNAME09_B (__DIGITS_HOSTNAME09_B_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME09_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME09_B __DIGITS_HOSTNAME09_B && !__DIGITS_HOSTNAME10_B describe DIGITS_HOSTNAME09_B There are 9 digits in the begin of the sender hostname score DIGITS_HOSTNAME09_B 2.0 # правило срабатывает при 10 и более цифр в левой части sender hostname header __DIGITS_HOSTNAME10_B_EXISCAN Received =~ /^\s*from\s+(([^\.\s]*?\d){10,}\S*)\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*(helo)*/ header __DIGITS_HOSTNAME10_B_SPAMASS_MILTER Received =~ /^\s*from\s+\S+\s*\(\s*(([^\.\s\[]*?\d){10,}\S*)/ meta __DIGITS_HOSTNAME10_B (__DIGITS_HOSTNAME10_B_EXISCAN && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HOSTNAME10_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP) meta DIGITS_HOSTNAME10_B __DIGITS_HOSTNAME10_B describe DIGITS_HOSTNAME10_B There are 10 or more digits in the begin of the sender hostname score DIGITS_HOSTNAME10_B 2.1 ###################################################################### # проверка sender helo header __DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP Received =~ /^\s*from\s+\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(/ # Received: from mail2.vedekon.net.ua ([195.10.210.1]) header __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP1 Received =~ /^\s*from\s+\S+\s+\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\)/ # Received: from [193.84.77.158] header __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP2 Received =~ /^\s*from\s+\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]/ # Received: from [193.84.77.158] (helo=[195.10.210.94]) header __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP3 Received =~ /^\s*from\s+\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s+\(helo=\[\d{1,3}\.d{1,3}\.d{1,3}\.d{1,3}\]\)/ meta __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP1 || __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP2 || __DIGITS_HOSTNAME_EXISCAN_HELO_SKIP3 # правило срабатывает при 7 цифрах в sender helo header __DIGITS_HELO07_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=((\S*\d){7,}\S*)/ header __DIGITS_HELO07_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=((\S*\d){7,}\S*)/ header __DIGITS_HELO07_SPAMASS_MILTER Received =~ /^\s*from\s+((\S*\d){7,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO07 ((__DIGITS_HELO07_EXISCAN || __DIGITS_HELO07_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO07_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO07 __DIGITS_HELO07 && !__DIGITS_HELO08 describe DIGITS_HELO07 There are 7 digits in the sender helo score DIGITS_HELO07 1.0 # правило срабатывает при 8 цифрах в sender helo header __DIGITS_HELO08_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=((\S*\d){8,}\S*)/ header __DIGITS_HELO08_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=((\S*\d){8,}\S*)/ header __DIGITS_HELO08_SPAMASS_MILTER Received =~ /^\s*from\s+((\S*\d){8,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO08 ((__DIGITS_HELO08_EXISCAN || __DIGITS_HELO08_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO08_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO08 __DIGITS_HELO08 && !__DIGITS_HELO09 describe DIGITS_HELO08 There are 8 digits in the sender helo score DIGITS_HELO08 1.5 # правило срабатывает при 9 цифрах в sender helo header __DIGITS_HELO09_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=((\S*\d){9,}\S*)/ header __DIGITS_HELO09_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=((\S*\d){9,}\S*)/ header __DIGITS_HELO09_SPAMASS_MILTER Received =~ /^\s*from\s+((\S*\d){9,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO09 ((__DIGITS_HELO09_EXISCAN || __DIGITS_HELO09_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO09_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO09 __DIGITS_HELO09 && !__DIGITS_HELO10 describe DIGITS_HELO09 There are 9 digits in the sender helo score DIGITS_HELO09 1.7 # правило срабатывает при 10 и более цифр в sender helo header __DIGITS_HELO10_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=((\S*\d){10,}\S*)/ header __DIGITS_HELO10_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=((\S*\d){10,}\S*)/ header __DIGITS_HELO10_SPAMASS_MILTER Received =~ /^\s*from\s+((\S*\d){10,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO10 ((__DIGITS_HELO10_EXISCAN || __DIGITS_HELO10_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO10_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO10 __DIGITS_HELO10 describe DIGITS_HELO10 There are 10 or more digits in the sender helo score DIGITS_HELO10 1.8 ###################################################################### # проверка левой части sender helo # правило срабатывает при 6 цифрах в левой части sender helo header __DIGITS_HELO06_B_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=(([^\.\s]*\d){6,}\S*)/ header __DIGITS_HELO06_B_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=(([^\.\s]*\d){6,}\S*)/ header __DIGITS_HELO06_B_SPAMASS_MILTER Received =~ /^\s*from\s+(([^\.\s]*\d){6,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO06_B ((__DIGITS_HELO06_B_EXISCAN || __DIGITS_HELO06_B_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO06_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO06_B __DIGITS_HELO06_B && !__DIGITS_HELO07_B describe DIGITS_HELO06_B There are 6 digits in the begin of the sender helo score DIGITS_HELO06_B 1.0 # правило срабатывает при 7 цифрах в левой части sender helo header __DIGITS_HELO07_B_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=(([^\.\s]*\d){7,}\S*)/ header __DIGITS_HELO07_B_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=(([^\.\s]*\d){7,}\S*)/ header __DIGITS_HELO07_B_SPAMASS_MILTER Received =~ /^\s*from\s+(([^\.\s]*\d){7,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO07_B ((__DIGITS_HELO07_B_EXISCAN || __DIGITS_HELO07_B_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO07_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO07_B __DIGITS_HELO07_B && !__DIGITS_HELO08_B describe DIGITS_HELO07_B There are 7 digits in the begin of the sender helo score DIGITS_HELO07_B 1.5 # правило срабатывает при 8 цифрах в левой части sender helo header __DIGITS_HELO08_B_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=(([^\.\s]*\d){8,}\S*)/ header __DIGITS_HELO08_B_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=(([^\.\s]*\d){8,}\S*)/ header __DIGITS_HELO08_B_SPAMASS_MILTER Received =~ /^\s*from\s+(([^\.\s]*\d){8,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta DIGITS_HELO08_B ((__DIGITS_HELO08_B_EXISCAN || __DIGITS_HELO08_B_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO08_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO08_B __DIGITS_HELO08_B && !__DIGITS_HELO09_B describe DIGITS_HELO08_B There are 8 digits in the begin of the sender helo score DIGITS_HELO08_B 1.8 # правило срабатывает при 9 цифрах в левой части sender helo header __DIGITS_HELO09_B_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=(([^\.\s]*\d){9,}\S*)/ header __DIGITS_HELO09_B_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=(([^\.\s]*\d){9,}\S*)/ header __DIGITS_HELO09_B_SPAMASS_MILTER Received =~ /^\s*from\s+(([^\.\s]*\d){9,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO09_B ((__DIGITS_HELO09_B_EXISCAN || __DIGITS_HELO09_B_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP && !__DIGITS_HOSTNAME_EXISCAN_HELO_SKIP) || (__DIGITS_HELO09_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO09_B __DIGITS_HELO09_B && !__DIGITS_HELO10_B describe DIGITS_HELO09_B There are 9 digits in the begin of the sender helo score DIGITS_HELO09_B 2.0 # правило срабатывает при 10 и более цифр в левой части sender helo header __DIGITS_HELO10_B_EXISCAN Received =~ /^\s*from\s+\S+\s*\(\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*helo=(([^\.\s]*\d){10,}\S*)/ header __DIGITS_HELO10_B_EXISCAN2 Received =~ /^\s*from\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*\(helo=(([^\.\s]*\d){10,}\S*)/ header __DIGITS_HELO10_B_SPAMASS_MILTER Received =~ /^\s*from\s+(([^\.\s]*\d){10,}\S*)\s*\(\s*\S*\s*\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\s*[\(\)]/ meta __DIGITS_HELO10_B ((__DIGITS_HELO10_B_EXISCAN || __DIGITS_HELO10_B_EXISCAN2) && !__DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_EXISCAN_SKIP) || (__DIGITS_HELO10_B_SPAMASS_MILTER && __DIGITS_SENDMAIL && !__DIGITS_HOSTNAME_SENDMAIL_SKIP && !__DIGITS_HOSTNAME_SENDMAIL_HELO_SKIP) meta DIGITS_HELO10_B __DIGITS_HELO10_B describe DIGITS_HELO10_B There are 10 or more digits in the begin of the sender helo score DIGITS_HELO10_B 2.1 ###################################################################### # проверка домена header from # правило срабатывает при 7 цифрах в header from header __DIGITS_HEADER_FROM07 From =~ /\@((\S*\d){7,}\S*)/ meta DIGITS_HEADER_FROM07 __DIGITS_HEADER_FROM07 && !__DIGITS_HEADER_FROM08 describe DIGITS_HEADER_FROM07 There are 7 digits in the header from domain score DIGITS_HEADER_FROM07 1.0 # правило срабатывает при 8 цифрах в header from header __DIGITS_HEADER_FROM08 From =~ /\@((\S*\d){8,}\S*)/ meta DIGITS_HEADER_FROM08 __DIGITS_HEADER_FROM08 && !__DIGITS_HEADER_FROM09 describe DIGITS_HEADER_FROM08 There are 8 digits in the header from domain score DIGITS_HEADER_FROM08 1.5 # правило срабатывает при 9 цифрах в header from header __DIGITS_HEADER_FROM09 From =~ /\@((\S*\d){9,}\S*)/ meta DIGITS_HEADER_FROM09 __DIGITS_HEADER_FROM09 && !__DIGITS_HEADER_FROM10 describe DIGITS_HEADER_FROM09 There are 9 digits in the header from domain score DIGITS_HEADER_FROM09 1.7 # правило срабатывает при 10 и более цифр в header from header __DIGITS_HEADER_FROM10 From =~ /\@((\S*\d){10,}\S*)/ meta DIGITS_HEADER_FROM10 __DIGITS_HEADER_FROM10 describe DIGITS_HEADER_FROM10 There are 10 or more digits in the header from domain score DIGITS_HEADER_FROM10 1.8 ###################################################################### # проверка левой части домена header from # правило срабатывает при 6 цифрах в header from header __DIGITS_HEADER_FROM06_B From =~ /\@(([^\.\s]*\d){6,})/ meta DIGITS_HEADER_FROM06_B __DIGITS_HEADER_FROM06_B && !__DIGITS_HEADER_FROM07_B describe DIGITS_HEADER_FROM06_B There are 6 digits in the begin of the header from score DIGITS_HEADER_FROM06_B 1.0 # правило срабатывает при 7 цифрах в header from header __DIGITS_HEADER_FROM07_B From =~ /\@(([^\.\s]*\d){7,})/ meta DIGITS_HEADER_FROM07_B __DIGITS_HEADER_FROM07_B && !__DIGITS_HEADER_FROM08_B describe DIGITS_HEADER_FROM07_B There are 7 digits in the begin of the header from score DIGITS_HEADER_FROM07_B 1.5 # правило срабатывает при 8 цифрах в header from header __DIGITS_HEADER_FROM08_B From =~ /\@(([^\.\s]*\d){8,})/ meta DIGITS_HEADER_FROM08_B __DIGITS_HEADER_FROM08_B && !__DIGITS_HEADER_FROM09_B describe DIGITS_HEADER_FROM08_B There are 8 digits in the begin of the header from score DIGITS_HEADER_FROM08_B 1.8 # правило срабатывает при 9 цифрах в header from header __DIGITS_HEADER_FROM09_B From =~ /\@(([^\.\s]*\d){9,})/ meta DIGITS_HEADER_FROM09_B __DIGITS_HEADER_FROM09_B && !__DIGITS_HEADER_FROM10_B describe DIGITS_HEADER_FROM09_B There are 9 digits in the begin of the header from score DIGITS_HEADER_FROM09_B 2.0 # правило срабатывает при 10 и более цифр в header from header __DIGITS_HEADER_FROM10_B From =~ /\@(([^\.\s]*\d){10,})/ meta DIGITS_HEADER_FROM10_B __DIGITS_HEADER_FROM10_B describe DIGITS_HEADER_FROM10_B There are 10 or more digits in the begin of the header from score DIGITS_HEADER_FROM10_B 2.1 ###################################################################### # проверка envelope домена from # правило срабатывает при 7 цифрах в envelope from header __DIGITS_ENV_FROM07_RETURN_PATH Return-Path =~ /\@((\S*\d){7,}\S*)/ header __DIGITS_ENV_FROM07_X_ENV_FROM X-Envelope-From =~ /\@((\S*\d){7,}\S*)/ meta __DIGITS_ENV_FROM07 __DIGITS_ENV_FROM07_RETURN_PATH || __DIGITS_ENV_FROM07_X_ENV_FROM meta DIGITS_ENV_FROM07 __DIGITS_ENV_FROM07 && !__DIGITS_ENV_FROM08 describe DIGITS_ENV_FROM07 There are 7 digits in the envelope from domain score DIGITS_ENV_FROM07 1.0 # правило срабатывает при 8 цифрах в envelope from header __DIGITS_ENV_FROM08_RETURN_PATH Return-Path =~ /\@((\S*\d){8,}\S*)/ header __DIGITS_ENV_FROM08_X_ENV_FROM X-Envelope-From =~ /\@((\S*\d){8,}\S*)/ meta __DIGITS_ENV_FROM08 __DIGITS_ENV_FROM08_RETURN_PATH || __DIGITS_ENV_FROM08_X_ENV_FROM meta DIGITS_ENV_FROM08 __DIGITS_ENV_FROM08 && !__DIGITS_ENV_FROM09 describe DIGITS_ENV_FROM08 There are 8 digits in the envelope from domain score DIGITS_ENV_FROM08 1.5 # правило срабатывает при 9 цифрах в envelope from header __DIGITS_ENV_FROM09_RETURN_PATH Return-Path =~ /\@((\S*\d){9,}\S*)/ header __DIGITS_ENV_FROM09_X_ENV_FROM X-Envelope-From =~ /\@((\S*\d){9,}\S*)/ meta __DIGITS_ENV_FROM09 __DIGITS_ENV_FROM09_RETURN_PATH || __DIGITS_ENV_FROM09_X_ENV_FROM meta DIGITS_ENV_FROM09 __DIGITS_ENV_FROM09 && !__DIGITS_ENV_FROM10 describe DIGITS_ENV_FROM09 There are 9 digits in the envelope from domain score DIGITS_ENV_FROM09 1.8 # правило срабатывает при 10 и более цифр в envelope from header __DIGITS_ENV_FROM10_RETURN_PATH Return-Path =~ /\@((\S*\d){10,}\S*)/ header __DIGITS_ENV_FROM10_X_ENV_FROM X-Envelope-From =~ /\@((\S*\d){10,}\S*)/ meta __DIGITS_ENV_FROM10 __DIGITS_ENV_FROM10_RETURN_PATH || __DIGITS_ENV_FROM10_X_ENV_FROM meta DIGITS_ENV_FROM10 __DIGITS_ENV_FROM10 describe DIGITS_ENV_FROM10 There are 10 or more digits in the envelope from domain score DIGITS_ENV_FROM10 1.9 ###################################################################### # проверка левой части домена envelope from # правило срабатывает при 6 цифрах в envelope from header __DIGITS_ENV_FROM06_B_RETURN_PATH Return-Path =~ /\@(([^\.\s]*\d){6,})/ header __DIGITS_ENV_FROM06_B_X_ENV_FROM X-Envelope-From =~ /\@(([^\.\s]*\d){6,})/ meta __DIGITS_ENV_FROM_B06 __DIGITS_ENV_FROM06_B_RETURN_PATH || __DIGITS_ENV_FROM06_B_X_ENV_FROM meta DIGITS_ENV_FROM_B06 __DIGITS_ENV_FROM_B06 && !__DIGITS_ENV_FROM_B07 describe DIGITS_ENV_FROM_B06 There are 6 digits in the begin of the envelope from score DIGITS_ENV_FROM_B06 1.0 # правило срабатывает при 7 цифрах в envelope from header __DIGITS_ENV_FROM07_B_RETURN_PATH Return-Path =~ /\@(([^\.\s]*\d){7,})/ header __DIGITS_ENV_FROM07_B_X_ENV_FROM X-Envelope-From =~ /\@(([^\.\s]*\d){7,})/ meta __DIGITS_ENV_FROM_B07 __DIGITS_ENV_FROM07_B_RETURN_PATH || __DIGITS_ENV_FROM07_B_X_ENV_FROM meta DIGITS_ENV_FROM_B07 __DIGITS_ENV_FROM_B07 && !__DIGITS_ENV_FROM_B08 describe DIGITS_ENV_FROM_B07 There are 7 digits in the begin of the envelope from score DIGITS_ENV_FROM_B07 1.5 # правило срабатывает при 8 цифрах в envelope from header __DIGITS_ENV_FROM08_B_RETURN_PATH Return-Path =~ /\@(([^\.\s]*\d){8,})/ header __DIGITS_ENV_FROM08_B_X_ENV_FROM X-Envelope-From =~ /\@(([^\.\s]*\d){8,})/ meta __DIGITS_ENV_FROM_B08 __DIGITS_ENV_FROM08_B_RETURN_PATH || __DIGITS_ENV_FROM08_B_X_ENV_FROM meta DIGITS_ENV_FROM_B08 __DIGITS_ENV_FROM_B08 && !__DIGITS_ENV_FROM_B09 describe DIGITS_ENV_FROM_B08 There are 8 digits in the begin of the envelope from score DIGITS_ENV_FROM_B08 1.8 # правило срабатывает при 9 цифрах в envelope from header __DIGITS_ENV_FROM09_B_RETURN_PATH Return-Path =~ /\@(([^\.\s]*\d){9,})/ header __DIGITS_ENV_FROM09_B_X_ENV_FROM X-Envelope-From =~ /\@(([^\.\s]*\d){9,})/ meta __DIGITS_ENV_FROM_B09 __DIGITS_ENV_FROM09_B_RETURN_PATH || __DIGITS_ENV_FROM09_B_X_ENV_FROM meta DIGITS_ENV_FROM_B09 __DIGITS_ENV_FROM_B09 && !__DIGITS_ENV_FROM_B10 describe DIGITS_ENV_FROM_B09 There are 9 digits in the begin of the envelope from score DIGITS_ENV_FROM_B09 2.0 # правило срабатывает при 10 и более цифр в envelope from header __DIGITS_ENV_FROM10_B_RETURN_PATH Return-Path =~ /\@(([^\.\s]*\d){10,})/ header __DIGITS_ENV_FROM10_B_X_ENV_FROM X-Envelope-From =~ /\@(([^\.\s]*\d){10,})/ meta __DIGITS_ENV_FROM_B10 __DIGITS_ENV_FROM10_B_RETURN_PATH || __DIGITS_ENV_FROM10_B_X_ENV_FROM meta DIGITS_ENV_FROM_B10 __DIGITS_ENV_FROM_B10 describe DIGITS_ENV_FROM_B10 There are 10 or more digits in the begin of the envelope from score DIGITS_ENV_FROM_B10 2.1