# # поиск сообщений, удовлетворяющих следующим условиям: # # ENVELOPE FROM - соответствует адресу из From и Reply-To (пример: ) # для этого нужен patch MultipleHeadersCheck # или # Return-Path - соответствует адресу из From и Reply-To (пример: ) # для этого нужен patch MultipleHeadersCheck # Reply-To: - Real Name в двойных кавычках соответствует mailbox'у и состоит из букв # и символа подчеркивания (пример: "nero" ) # To: - real name в двойных кавычках соответствует mailbox'у (пример: "zuper" ) # Subject: присутствуют восьмибитные символы или пустой Subject # Date: - часовой пояс -0500 или -0600 (пример: Fri, 26 Mar 2004 06:45:17 -0500) # MIME-Version: 1.0 # Content-Transfer-Encoding: 8bit # X-Priority: 3 # X-MSMail-Priority: Normal # X-Mailer: Microsoft Outlook Express 5.50.4522.1200 # X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 # Received: - последний однострочный, хост из сети 10.0.0.0/16, дата совпадает с датой из # поля Date # (пример: from [10.0.26.166] by ATuileries-117-1-36-123.w81-251.abo.wanadoo.fr id 6DtcAPCOX7Zq; Fri, 26 Mar 2004 06:45:17 -0500) # header __CUSTOM01_ADDR_ENV_FROM X-Envelope-From|From|Reply-To =~ /^\s*([^\|]+)\s*[\n\r]*\|\s*".+?" \1\s*[\n\r]*\|\s*".+?" \1\s*[\n\r]*$/im header __CUSTOM01_ADDR_RETURN_PATH Return-Path|From|Reply-To =~ /^\s*([^\|]+)\s*[\n\r]*\|\s*".+?" \1\s*[\n\r]*\|\s*".+?" \1\s*[\n\r]*$/im header __CUSTOM01_REPLY_TO Reply-To =~ /^"([\w\d_]+)" <\1\@.+>$/i header __CUSTOM01_TO To =~ /^"([\w\d_\.\-]+)" <\1\@.+>$/i header __CUSTOM01_SUBJECT_EMPTY Subject =~ /^$/i header __CUSTOM01_MIME_VERSION MIME-Version =~ /^1\.0$/ header __CUSTOM01_CTE Content-Transfer-Encoding =~ /^8bit$/i header __CUSTOM01_X_PRIORITY X-Priority =~ /^3$/ header __CUSTOM01_X_MSMAIL_PRIORITY X-MSMail-Priority =~ /^Normal$/ header __CUSTOM01_X_MAILER X-Mailer =~ /^Microsoft Outlook Express 5\.50\.4522\.1200$/ header __CUSTOM01_X_MIME_OLE X-MimeOLE =~ /^Produced By Microsoft MimeOLE V5\.50\.4522\.1200$/ header __CUSTOM01_DATE Date =~ /^\w{3},\s+\d+\s+\w{3}\s+\d{4}\s+\d\d:\d\d:\d\d\s+(-0500|-0600)/ header __CUSTOM01_RECEIVED Date|Received =~ /^(.+?)[\n\r\s]*\|.+?from \[10\.0\.\d+\.\d+\] by [\w\d\.-]+ id [\d\w]+; \1[\n\r\s]*$/ms meta __CUSTOM01_META __CUSTOM01_CTE && __CUSTOM01_REPLY_TO && __CUSTOM01_TO && __CUSTOM01_MIME_VERSION && __CUSTOM01_X_PRIORITY && __CUSTOM01_X_MSMAIL_PRIORITY && __CUSTOM01_X_MAILER && __CUSTOM01_X_MIME_OLE && (__CUSTOM01_ADDR_ENV_FROM || __CUSTOM01_ADDR_RETURN_PATH) && __CUSTOM01_DATE && __CUSTOM01_RECEIVED meta __CUSTOM01_META_SUBJ SUBJ_FULL_OF_8BITS || SUBJ_ILLEGAL_CHARS || __CUSTOM01_SUBJECT_EMPTY # From: 1. real name в двойных кавычках соответствует mailbox'у и состоит из букв и # символа подчеркивания (пример: "nero" ) header __CUSTOM01_FROM From =~ /^"([\w\d_]+)" <\1\@.+>$/i # 2. real name входит в список предопределенных значений и указан в двойных кавычках # (пример: "asd" ) header __CUSTOM01_FROM_LIST From =~ /^"(asd|NBC|Center|CDMA|жЕМРП|лЮЯРЕП|оПЮБН|лЮПЙЕРНКНЦ|гЮЫХРЮ ЙНЛЛЕПВЕЯЙНИ РЮИМШ)" <[\w\d_]+\@.+>$/i # 3. real name не соответствует ни mailbox'у из поля From ни списку, но указан в двойных кавычках # и состоит из латинских букв и символа подчеркивания header __CUSTOM01_FROM_OTHER From =~ /^"[_\w\sЮ-Ъю-Ъ]+" <[\w\d_]+\@.+>$/i # Content-Type: text/html; # charset=windows-1251 header __CUSTOM01_CT Content-Type =~ /^text\/html;[\n\r\t\s]*charset=windows-1251/im meta CUSTOM01a_h __CUSTOM01_FROM && __CUSTOM01_CT && __CUSTOM01_META && __CUSTOM01_META_SUBJ describe CUSTOM01a_h Custom Rule 01a_h score CUSTOM01a_h 3.0 meta CUSTOM01b_h __CUSTOM01_FROM_LIST && __CUSTOM01_CT && __CUSTOM01_META && __CUSTOM01_META_SUBJ describe CUSTOM01b_h Custom Rule 01b_h score CUSTOM01b_h 3.0 meta CUSTOM01c_h __CUSTOM01_FROM_OTHER && !__CUSTOM01_FROM && !__CUSTOM01_FROM_LIST && __CUSTOM01_CT && __CUSTOM01_META && __CUSTOM01_META_SUBJ describe CUSTOM01c_h Custom Rule 01c_h score CUSTOM01c_h 2.5 # # если в Content-Type присутствует и multipart/mixed с boundary и charset # # Content-Type: multipart/mixed; # boundary="----------B78623E38A929DC"; # charset=windows-1251 header __CUSTOM01_CT_MULTIPART Content-Type =~ /^multipart\/mixed;[\n\r\t\s]*boundary="[\-\dA-F]+";[\n\r\t\s]*charset=windows-1251/im # Subject может содержать 8-битные символы, но не попадать под # SUBJ_FULL_OF_8BITS || SUBJ_ILLEGAL_CHARS header __CUSTOM01_SUBJ8 Subject =~ /[\x80-\xFF]/m meta CUSTOM01a_m __CUSTOM01_FROM && __CUSTOM01_CT_MULTIPART && __CUSTOM01_META && (__CUSTOM01_META_SUBJ || __CUSTOM01_SUBJ8) describe CUSTOM01a_m Custom Rule 01a_m score CUSTOM01a_m 3.5 meta CUSTOM01b_m __CUSTOM01_FROM_LIST && __CUSTOM01_CT_MULTIPART && __CUSTOM01_META && (__CUSTOM01_META_SUBJ || __CUSTOM01_SUBJ8) describe CUSTOM01b_m Custom Rule 01b_m score CUSTOM01b_m 3.5 meta CUSTOM01c_m __CUSTOM01_FROM_OTHER && !__CUSTOM01_FROM && !__CUSTOM01_FROM_LIST && __CUSTOM01_CT_MULTIPART && __CUSTOM01_META && (__CUSTOM01_META_SUBJ || __CUSTOM01_SUBJ8) describe CUSTOM01c_m Custom Rule 01c_m score CUSTOM01c_m 3.0