condition = ${readsocket{/var/run/greylistd/socket}\ {--grey \ ${if def:sender_host_name \ {${sg {${sg {$sender_host_name } \ {\N^[^.]*\.([^.]*\.[^.]+)$\N} \ {\N$1\N} \ } \ } \ {\N^.*?([^.]*?\.??)([^.]*?\.??)([^.]++)$\N} \ {\N$1$2$3\N} \ } \ } \ {mask:$sender_host_address/29 } \ } \ ${if match {$sender_address} {\N(?i)^SRS[01][=+-]\N} \ {${sg {${sg {$sender_address } \ {\N(?i)^SRS[01][=+-][^ @]+?[=+-][a-zA-Z0-9]{2}[=+-]([^ @]+[=+-][^ @]++@.*)$\N} \ {\N$1\N}} \ } \ {\N([=+-])prvs=[^=]+?=\N} \ {\N$1\N} \ } \ } \ {${if match {$sender_address} {\N(?i)^prvs=\N} \ {${sg {$sender_address } {\N(?i)^prvs=[^ @]+?=(.*@.*)$\N} {\N$1\N}}} \ {$sender_address }}} \ }\ ${if match {$local_part} {\N(?i)^prvs=\N} \ {${sg {$local_part@$domain } {\N(?i)^prvs=[^ @]+?=(.*@.*)$\N} {\N$1\N}}} \ {$local_part@$domain }} \ }\ {15s}{}{false}}