[Exim-users] unsubscribe

2022-01-27 Пенетрантность Alex M
 

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] Exim forany

2022-01-27 Пенетрантность Mikhail Golub

Спасибо, посмотрю.

Я на столько не успел заморочиться :(
Что в голову пришло - сделал. Спам, который шел в то время, был отсеян.


On 27.01.2022 16:36, Victor Ustugov wrote:

Victor Ustugov wrote on 27.01.2022 14:21:

Mikhail Golub wrote on 27.01.2022 14:11:



{\N"|\s+|-|\/\N}


{\N["\s-/]+\N}


Вернее так:
{\N["\s/-]+\N}


а там точно минус нужен?
он может быть частью названия домена из +virtual_domains


Так адрес же отсекается через extract по разделителю "<".


кстати, не факт, что это тоже удачная идея

например, для вот такого случая:

From: "Mail-Admin " 

в том же Thunderbird и в списке писем и при просмотре письма в колонке и
соответственно поле "От" будет указано:

Mail-Admin 


если пытаться сооружать длинную конструкцию, которая будет из $h_From:
убирать не просто первую встретившуюся открывающуюся угловую скобку и
всё за ней, а то, то находится между последней открывающейся угловой
скобкой и последней закрывающейся, а также все пробельные символы до и
после, то при интерпретации всей конструкции (включая forany) в exim -be
тот может выдать вот такое сообщение об ошибке:

exim: length limit exceeded (286 > 256) for: recipient

всё зависит от общей длины конструкции, которая зависит от длины
заголовка From. но даже не очень длинные заголовки проверить не получилось.

как вариант - можно вынести логику получения текста перед адресов
отправителя из заголовка From в отдельный acl.


acl_addr_text:
  accept message= ${if match{$acl_arg1}\
{\N^\s*(.*)\s*<[^<>]+@[^<>]>\s*$\N}\
{$1}\
{${if match{$acl_arg1}{\N^\s*(.*)\s\S+?\s*$\N}{$1}{


тогда само условие будет выглядеть как-то так:

condition = ${if forany {<; \
${sg{${acl{acl_addr_text}{$h_From:}}}{\N[@"'\s/<>]+\N}{;}}\
}{match_domain{$item}{+virtual_domains}}}

такое условие отловит и текст в виде полноценных почтовых адресов перед
адресом отправителя и минусы в названиях доменов.



extract отсекает из заголовка From адрес отправителя.
а я имею ввиду, что минус может быть частью названия домена из
именованного списка +virtual_domains, т. е. частью названия одного из
доменов получателей.

тогда при использовании минуса в качестве одного из возможных
разделителей текста из From такой домен будет разделён на две части.

т. е. если в +virtual_domains присутствует домен my-domain.ua, а
заголовок From выглядит как

"Mail-Admin my-domain.ua" 

, то при использовании минуса в качестве разделителя текста из From на
части получится


# exim -be '${sg{${extract{1}{<}{"Mail-Admin my-domain.ua"
}}}{\N["\s/-]+\N}{;}}'
;Mail;Admin;my;domain.ua;


и на наличие в +virtual_domains домен my-domain.ua проверен не будет.
будут проверены отдельно my и domain.ua








___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] Exim forany

2022-01-27 Пенетрантность Mikhail Golub



On 27.01.2022 14:09, Victor Ustugov wrote:

l...@lena.kiev.ua wrote on 27.01.2022 14:06:

{\N"|\s+|-|\/\N}


{\N["\s-/]+\N}


Вернее так:
{\N["\s/-]+\N}


а там точно минус нужен?
он может быть частью названия домена из +virtual_domains


Так адрес же отсекается через extract по разделителю "<".


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] Exim forany

2022-01-27 Пенетрантность Mikhail Golub

да, оно. Спасибо.
Убирает двойные значения...

On 27.01.2022 13:20, l...@lena.kiev.ua wrote:

{\N"|\s+|-|\/\N}


{\N["\s-/]+\N}


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users




___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] Exim forany

2022-01-27 Пенетрантность Mikhail Golub



On 27.01.2022 13:16, Victor Ustugov wrote:

Mikhail Golub wrote on 27.01.2022 12:31:

Доброго времени суток.


доброго


Такое выражение:
exim -be -d+all '${if forany { :Mail:Admin:test:: } {inlisti
{$item}{test}}}'

Т.е. список начинается с пустого значения и заканчивается двумя пустыми
значениями.


по идее, в конце там не два пустых значения. задвоение двоеточия
позволяет указать, что двоеточие является частью элемента списка.


6.20 List construction
--
...
If a colon is actually needed in an item in a list, it must be
entered as two colons.


Так тоже не исправляет ситуацию:
exim -be '${if forany {<; ;Mail;Admin;test;; } {inlisti {$item}{test}}}'

Именно в конце списка такое поведение. Делимитер роли не играет (что 
";", что запятая).






И вот в конце два пустых значения подряд не обрабатывает.
12:25:11 11880  forany: $item = ""
12:25:11 11880  forany: $item = "Mail"
12:25:11 11880  forany: $item = "Admin"
12:25:11 11880  forany: $item = "test:"

Суть всего этого - отсекание спама с моими доменами в поле "От:" в
конверте, не в адресе.


это не конверт. по крайней мере не то, что в SMTP называется envelope.

Да, это "From:", не envelope-from:


и как спам-то отсекается в данном случае? это способ поиска слова "test"
в заголовке From перед адресом?

Да, поиск своего домена в поле "От:" перед адресом.
Это фишинговые письма ...

Правилом ниже вот такие From: отсекаются.
From: Documents-mydomain.ua  

А вот так уже нет.
From: "Mail-Admin mydomain.ua" 

Потому как в конце кавычки и пробел, что дает "два пустых значения" в 
списке.

Можно, конечно, перед обработкой удалять кавычки ...
Но может как-то изхитриться с forany можно?




Например:
"Mail-Admin mydomain.ua" 

Варианты могут быть с разделением через пробел, дефис, косую черту ...
Это решил через sg и extract.

А вот с forany засада получается :(

Вот полное условие:
condition = ${if forany {<;
${sg{${extract{1}{<}{$h_From:}}}{\N"|\s+|-|\/\N}{;}} } {match_domain
{$item}{+virtual_domains}}}

P.S. Exim version 4.95 #1 (FreeBSD 12.3)






___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] Exim forany

2022-01-27 Пенетрантность Lena
> {\N"|\s+|-|\/\N}

{\N["\s-/]+\N}


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



[Exim-users] Exim forany

2022-01-27 Пенетрантность Mikhail Golub

Доброго времени суток.

Такое выражение:
exim -be -d+all '${if forany { :Mail:Admin:test:: } {inlisti 
{$item}{test}}}'


Т.е. список начинается с пустого значения и заканчивается двумя пустыми 
значениями.


И вот в конце два пустых значения подряд не обрабатывает.
12:25:11 11880  forany: $item = ""
12:25:11 11880  forany: $item = "Mail"
12:25:11 11880  forany: $item = "Admin"
12:25:11 11880  forany: $item = "test:"

Суть всего этого - отсекание спама с моими доменами в поле "От:" в 
конверте, не в адресе.


Например:
"Mail-Admin mydomain.ua" 

Варианты могут быть с разделением через пробел, дефис, косую черту ...
Это решил через sg и extract.

А вот с forany засада получается :(

Вот полное условие:
condition = ${if forany {<; 
${sg{${extract{1}{<}{$h_From:}}}{\N"|\s+|-|\/\N}{;}} } {match_domain 
{$item}{+virtual_domains}}}


P.S. Exim version 4.95 #1 (FreeBSD 12.3)


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users