dnl dnl Проверка поля Message-Id dnl dnl NO - не проводить проверку dnl EMPTY:WARN - вывода в лог файл предупреждения dnl при пустом Message-Id dnl EMPTY:REJECT - возврата клиенту кода 5xx dnl при пустом Message-Id dnl EMPTY:SUBMIT_GREYLIST=XX - занесение хоста в greylist на XX минут dnl при пустом Message-Id dnl EMPTY:GREYLIST=XX - синоним для EMPTY:SUBMIT_GREYLIST=XX dnl EMPTY:SUBMIT_MYSQL=XX - занесение хоста в базу MySQL на XX минут dnl при пустом Message-Id dnl (доступно в enterprise версии) dnl EMPTY:SUBMIT_SQLITE=XX - занесение хоста в базу SQLite на XX минут dnl при пустом Message-Id dnl (доступно в enterprise версии) dnl EMPTY:SUBMIT_RBL=XX - занесение хоста в RBL на XX минут dnl при пустом Message-Id dnl (доступно в enterprise версии) dnl OWN:WARN - вывода в лог файл предупреждения, dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl OWN:REJECT - возврата клиенту кода 5xx, dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl OWN:SUBMIT_GREYLIST=XX - занесение хоста в greylist на XX минут dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl OWN:GREYLIST=XX - синоним для OWN:SUBMIT_GREYLIST=XX dnl OWN:SUBMIT_MYSQL=XX - занесение хоста в базу MySQL на XX минут dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl (доступно в enterprise версии) dnl OWN:SUBMIT_SQLITE=XX - занесение хоста в базу SQLite на XX минут dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl (доступно в enterprise версии) dnl OWN:SUBMIT_RBL=XX - занесение хоста в RBL на XX минут dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl (доступно в enterprise версии) dnl LOCAL:WARN - вывода в лог файл предупреждения, dnl если Message-Id содержит локальный домен dnl LOCAL:REJECT - возврата клиенту кода 5xx, dnl если Message-Id содержит локальный домен dnl LOCAL:SUBMIT_GREYLIST=XX - занесение хоста в greylist на XX минут dnl если Message-Id содержит локальный домен dnl LOCAL:GREYLIST=XX - синоним для LOCAL:SUBMIT_GREYLIST=XX dnl LOCAL:SUBMIT_MYSQL=XX - занесение хоста в базу MySQL на XX минут dnl если Message-Id содержит локальный домен dnl (доступно в enterprise версии) dnl LOCAL:SUBMIT_SQLITE=XX - занесение хоста в базу SQLite на XX минут dnl если Message-Id содержит локальный домен dnl (доступно в enterprise версии) dnl LOCAL:SUBMIT_RBL=XX - занесение хоста в RBL на XX минут dnl если Message-Id содержит локальный домен dnl (доступно в enterprise версии) dnl define(`confCHECK_MESSAGE_ID', `WARN')dnl dnl dnl время жизни записи в сером списке, RBL и базе MySQL может отсутствовать dnl dnl значения SUBMIT_GREYLIST, SUBMIT_MYSQL, SUBMIT_SQLITE и SUBMIT_RBL могут использоваться dnl одновременно с WARN или REJECT, резделяя их точкой с запятой: dnl EMPTY:WARN;SUBMIT_GREYLIST=10080 dnl dnl несколько значений могут быть указаны через пробел dnl define(`confCHECK_MESSAGE_ID', `EMPTY:REJECT OWN:REJECT LOCAL:WARN')dnl dnl dnl значение `WARN' приравнивается к dnl `EMPTY:WARN OWN:WARN LOCAL:WARN' dnl значение `REJECT' приравнивается к dnl `EMPTY:REJECT OWN:REJECT LOCAL:REJECT' dnl dnl конвертация старых значений WARN и REJECT в новые эквиваленты ifelse(confCHECK_MESSAGE_ID, `WARN', ` define(`confCHECK_MESSAGE_ID', `EMPTY:WARN OWN:WARN LOCAL:WARN') ') ifelse(confCHECK_MESSAGE_ID, `REJECT', ` define(`confCHECK_MESSAGE_ID', `EMPTY:REJECT OWN:REJECT LOCAL:REJECT') ') dnl замена всех двоеточий на знаки равно define(`_confCHECK_MESSAGE_ID_TMP', `translit(confCHECK_MESSAGE_ID, `:', `=')')dnl define(`confCHECK_MESSAGE_ID', _confCHECK_MESSAGE_ID_TMP)dnl dnl обработка раздела `EMPTY' define(`_ACTION_', `EXTRACT_NAMED(`EMPTY', confCHECK_MESSAGE_ID)')dnl dnl получение срока жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`SUBMIT_GREYLIST', translit(_ACTION_, `;', ` '))')dnl ifelse(_GREYLIST_PERIOD_, `', `dnl define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`GREYLIST', translit(_ACTION_, `;', ` '))')dnl ')dnl dnl присвоение значения по умолчанию сроку жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_TMP', `ifelse(_GREYLIST_PERIOD_`X', `X', `0', _GREYLIST_PERIOD_)')dnl define(`_GREYLIST_PERIOD_', _GREYLIST_PERIOD_TMP)dnl dnl получение срока жизни записи в RBL define(`_RBL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_RBL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в RBL define(`_RBL_PERIOD_TMP', `ifelse(_RBL_PERIOD_`X', `X', `0', _RBL_PERIOD_)')dnl define(`_RBL_PERIOD_', _RBL_PERIOD_TMP)dnl dnl получение срока жизни записи в MySQL define(`_MYSQL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_MYSQL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в MySQL define(`_MYSQL_PERIOD_TMP', `ifelse(_MYSQL_PERIOD_`X', `X', `0', _MYSQL_PERIOD_)')dnl define(`_MYSQL_PERIOD_', _MYSQL_PERIOD_TMP)dnl dnl получение срока жизни записи в SQLite define(`_SQLITE_PERIOD_', `EXTRACT_NAMED(`SUBMIT_SQLITE', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в SQLite define(`_SQLITE_PERIOD_TMP', `ifelse(_SQLITE_PERIOD_`X', `X', `0', _SQLITE_PERIOD_)')dnl define(`_SQLITE_PERIOD_', _SQLITE_PERIOD_TMP)dnl define(`_WARN_', `NO')dnl ifelse_strstr(_ACTION_, `GREYLIST', `define(`_WARN_', `YES')')dnl ifelse_strstr(_ACTION_, `SUBMIT', `define(`_WARN_', `YES')')dnl warn set acl_m0 = ${if or{\ {eq{${extract{submitted}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{relay_from_hosts}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{authenticated}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{abuse_or_postmaster}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{white_list_relays}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{white_list_senders}{$acl_m_wl_flag_msg}}}{1}}\ {eq{${extract{white_list_compat}{$acl_m_wl_flag_msg}}}{1}}\ }{skip}{}} ifelse_strstr(_ACTION_, `REJECT', `dnl # если поле Message-Id пустое deny condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if or{\ {eq{$h_Message-Id:}{}}\ {eq{$h_Message-Id:}{<>}}\ }{yes}{no}} message = Message-Id header field is empty (${message_id}) logwrite = original recipients: $recipients ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field was empty in previous message acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `empty', `', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `empty', `', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `empty', `', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `empty', `', `_RBL_PERIOD_')') ', ` ifelse_strstr(_ACTION_, `WARN', `dnl # если поле Message-Id пустое warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if or{\ {eq{$h_Message-Id:}{}}\ {eq{$h_Message-Id:}{<>}}\ }{yes}{no}} log_message = Message-Id header field is empty add_header = X-Warn-Message-Id: Message-Id header field is empty ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field was empty in previous message acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `empty', `', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `empty', `', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `empty', `', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `empty', `', `_RBL_PERIOD_')') ', ` ifelse_strstr(_WARN_, `YES', `dnl # если поле Message-Id пустое warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if or{\ {eq{$h_Message-Id:}{}}\ {eq{$h_Message-Id:}{<>}}\ }{yes}{no}} ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field was empty in previous message acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `empty', `', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`mysql', `submit', `message-id', `empty', `', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `empty', `', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `empty', `', `_RBL_PERIOD_')') ') dnl ifelse_strstr(_WARN_, `YES', `') ') dnl ifelse_strstr(_ACTION_, `WARN', `') ') dnl ifelse_strstr(_ACTION_, `REJECT', `') dnl обработка раздела `OWN' define(`_ACTION_', `EXTRACT_NAMED(`OWN', confCHECK_MESSAGE_ID)')dnl dnl получение срока жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`SUBMIT_GREYLIST', translit(_ACTION_, `;', ` '))')dnl ifelse(_GREYLIST_PERIOD_, `', `dnl define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`GREYLIST', translit(_ACTION_, `;', ` '))')dnl ')dnl dnl присвоение значения по умолчанию сроку жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_TMP', `ifelse(_GREYLIST_PERIOD_`X', `X', `0', _GREYLIST_PERIOD_)')dnl define(`_GREYLIST_PERIOD_', _GREYLIST_PERIOD_TMP)dnl dnl получение срока жизни записи в RBL define(`_RBL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_RBL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в RBL define(`_RBL_PERIOD_TMP', `ifelse(_RBL_PERIOD_`X', `X', `0', _RBL_PERIOD_)')dnl define(`_RBL_PERIOD_', _RBL_PERIOD_TMP)dnl dnl получение срока жизни записи в MySQL define(`_MYSQL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_MYSQL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в MySQL define(`_MYSQL_PERIOD_TMP', `ifelse(_MYSQL_PERIOD_`X', `X', `0', _MYSQL_PERIOD_)')dnl define(`_MYSQL_PERIOD_', _MYSQL_PERIOD_TMP)dnl dnl получение срока жизни записи в SQLite define(`_SQLITE_PERIOD_', `EXTRACT_NAMED(`SUBMIT_SQLITE', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в SQLite define(`_SQLITE_PERIOD_TMP', `ifelse(_SQLITE_PERIOD_`X', `X', `0', _SQLITE_PERIOD_)')dnl define(`_SQLITE_PERIOD_', _SQLITE_PERIOD_TMP)dnl define(`_WARN_', `NO')dnl ifelse_strstr(_ACTION_, `GREYLIST', `define(`_WARN_', `YES')')dnl ifelse_strstr(_ACTION_, `SUBMIT', `define(`_WARN_', `YES')')dnl ifelse_strstr(_ACTION_, `REJECT', `dnl # если поле Message-Id использован локальный домен deny condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match{$h_Message-Id:}\ {\N\<.+(\N@$qualify_domain|@confMESSAGE_ID_HEADER_DOMAIN\N)\>$\N}\ {yes}{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} log_message = Message-Id header field contains local domain ($h_Message-Id:) message = Message-Id header field contains local domain (${message_id}) logwrite = original recipients: $recipients ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field in previous message contained local domain (${message_id}) acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `own', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `own', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ', ` ifelse_strstr(_ACTION_, `WARN', `dnl # если в поле Message-Id использован локальный домен warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match{$h_Message-Id:}\ {\N\<.+(\N@$qualify_domain|@confMESSAGE_ID_HEADER_DOMAIN\N)\>$\N}\ {yes}{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} log_message = Message-Id header field contains local domain ($h_Message-Id:) add_header = X-Warn-Message-Id: Message-Id contains local domain ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field in previous message contained local domain (${message_id}) acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `own', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `own', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ', ` ifelse_strstr(_WARN_, `YES', `dnl # если в поле Message-Id использован локальный домен warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match{$h_Message-Id:}\ {\N\<.+(\N@$qualify_domain|@confMESSAGE_ID_HEADER_DOMAIN\N)\>$\N}\ {yes}{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field was empty in previous message acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `own', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `own', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `own', `$h_Message-Id:', `_RBL_PERIOD_')') ') dnl ifelse_strstr(_WARN_, `YES', `') ') dnl ifelse_strstr(_ACTION_, `WARN', `') ') dnl ifelse_strstr(_ACTION_, `REJECT', `') dnl обработка раздела `LOCAL' define(`_ACTION_', `EXTRACT_NAMED(`LOCAL', confCHECK_MESSAGE_ID)')dnl dnl получение срока жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`SUBMIT_GREYLIST', translit(_ACTION_, `;', ` '))')dnl ifelse(_GREYLIST_PERIOD_, `', `dnl define(`_GREYLIST_PERIOD_', `EXTRACT_NAMED(`GREYLIST', translit(_ACTION_, `;', ` '))')dnl ')dnl dnl присвоение значения по умолчанию сроку жизни записи в кеше серого списка define(`_GREYLIST_PERIOD_TMP', `ifelse(_GREYLIST_PERIOD_`X', `X', `0', _GREYLIST_PERIOD_)')dnl define(`_GREYLIST_PERIOD_', _GREYLIST_PERIOD_TMP)dnl dnl получение срока жизни записи в RBL define(`_RBL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_RBL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в RBL define(`_RBL_PERIOD_TMP', `ifelse(_RBL_PERIOD_`X', `X', `0', _RBL_PERIOD_)')dnl define(`_RBL_PERIOD_', _RBL_PERIOD_TMP)dnl dnl получение срока жизни записи в MySQL define(`_MYSQL_PERIOD_', `EXTRACT_NAMED(`SUBMIT_MYSQL', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в MySQL define(`_MYSQL_PERIOD_TMP', `ifelse(_MYSQL_PERIOD_`X', `X', `0', _MYSQL_PERIOD_)')dnl define(`_MYSQL_PERIOD_', _MYSQL_PERIOD_TMP)dnl dnl получение срока жизни записи в SQLite define(`_SQLITE_PERIOD_', `EXTRACT_NAMED(`SUBMIT_SQLITE', translit(_ACTION_, `;', ` '))')dnl dnl присвоение значения по умолчанию сроку жизни записи в SQLite define(`_SQLITE_PERIOD_TMP', `ifelse(_SQLITE_PERIOD_`X', `X', `0', _SQLITE_PERIOD_)')dnl define(`_SQLITE_PERIOD_', _SQLITE_PERIOD_TMP)dnl define(`_WARN_', `NO')dnl ifelse_strstr(_ACTION_, `GREYLIST', `define(`_WARN_', `YES')')dnl ifelse_strstr(_ACTION_, `SUBMIT', `define(`_WARN_', `YES')')dnl ifelse_strstr(_ACTION_, `REJECT', `dnl # если поле Message-Id использован локальный домен из адреса получателя deny condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match\ {$h_Message-Id:\t$recipients}\ {\N<[^@]+@([^>]+)>\t.+@\1(, .+)?$\N}\ {yes}{no}} condition = ${if match{$h_Message-Id:}{\N<[^@]+@([^>]+)>\N}\ {\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {yes}{no}}\ }{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} log_message = Message-Id header field contains local domain ($h_Message-Id:) message = Message-Id header field contains local domain (${message_id}) logwrite = original recipients: $recipients ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field in previous message contained local domain (${message_id}) acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `local', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `local', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `local', `${message_id}', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `local', `$h_Message-Id:', `_RBL_PERIOD_')') ', ` ifelse_strstr(_ACTION_, `WARN', `dnl # если поле Message-Id использован локальный домен из адреса получателя warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match\ {$h_Message-Id:\t$recipients}\ {\N<[^@]+@([^>]+)>\t.+@\1(, .+)?$\N}\ {yes}{no}} condition = ${if match{$h_Message-Id:}{\N<[^@]+@([^>]+)>\N}\ {\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {yes}{no}}\ }{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} log_message = Message-Id header field contains local domain ($h_Message-Id:) add_header = X-Warn-Message-Id: Message-Id contains local domain ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field in previous message contained local domain (${message_id}) acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `local', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `local', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `local', `${message_id}', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `local', `$h_Message-Id:', `_RBL_PERIOD_')') ', ` ifelse_strstr(_WARN_, `YES', `dnl # если поле Message-Id использован локальный домен из адреса получателя warn condition = ${if eq{$acl_m0}{skip}{no}{yes}} condition = ${if match\ {$h_Message-Id:\t$recipients}\ {\N<[^@]+@([^>]+)>\t.+@\1(, .+)?$\N}\ {yes}{no}} condition = ${if match{$h_Message-Id:}{\N<[^@]+@([^>]+)>\N}\ {\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {yes}{no}}\ }{no}} condition = ${if eq{$h_List-Id:}{}{yes}{\ ${if match{$h_From:}{\N^[^@]+@([^>]+)\N}{\ ${if match_domain{$1}\ {$primary_hostname:$qualify_domain:+local_domains}\ {no}{yes}}\ }{yes}}\ }} ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `dnl', `dnl ifelse_strstr(_ACTION_, `GREYLIST', `dnl set acl_c2 = _GREYLIST_PERIOD_ set acl_m_reason = Message-Id header field in previous message contained local domain (${message_id}) acl = acl_greylist_relays ') dnl ifelse_strstr(_ACTION_, `GREYLIST', `') ')') dnl ifdef(`confGREYLIST', `ifelse(confGREYLIST, `NO', `', `')') ifelse_strstr(_ACTION_, `SUBMIT_MYSQL', `ENTERPRISE(`mysql', `submit', `message-id', `local', `$h_Message-Id:', `0')') ifelse_strstr(_ACTION_, `SUBMIT_SQLLITE', `ENTERPRISE(`sqlite', `submit', `message-id', `local', `$h_Message-Id:', `0')') dnl ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `update', `mx.org.ua', `message-id.rbl.mx.org.ua', `local', `$h_Message-Id:', `_RBL_PERIOD_')') ifelse_strstr(_ACTION_, `SUBMIT_RBL', `ENTERPRISE(`rbl', `submit', `message-id', `local', `$h_Message-Id:', `_RBL_PERIOD_')') ') dnl ifelse_strstr(_WARN_, `YES', `') ') dnl ifelse_strstr(_ACTION_, `WARN', `') ') dnl ifelse_strstr(_ACTION_, `REJECT', `')