Правило В Почте Не Работает

  • Автор темы deeeman
  • Дата начала
D

deeeman

делаю такое почтовое правило:

Если Отправитель содержит "Отправитель1"
И Тема содержит "Тема 1"

ИЛИ Отправитель содержит "Отправитель2"
И Тема содержит "Тема 2"

ТО переложить в папку "Папка1"


не работает нормально((
как я проверял:

отправил письмо от Отправитель1 с темой 1 - не ушло в папку
отправил письмо от Отправитель2 с темой 2 - УШЛО в папку

получается же такая формула:
А & B | C & D
оно без скобок и операция И приоритетна, и исполниться оно должно если левая часть = Труе или правая часть = Труе.

как правильно построить формулу чтобы работало в оба случая?
разбить на 2 правила не предлагать!
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
разбить на 2 правила не предлагать!
Зря, это возможно единственны ход.
Надо смотреть как лотус разворачивает это в логические операторы.
А то может у него & и | на одном уровне)

Ну так и есть, проверил:
Код:
a:=0;
b:=0;
c:=1;
d:=1;
res:=a & b | c & d;
@Prompt([Ok];"";@Text(res))
Вернуло 1

Код:
a:=1;
b:=1;
c:=0;
d:=0;
res:=a & b | c & d;
@Prompt([Ok];"";@Text(res))
Вернуло 0
Получается, что хотим получить F = (А & B) | (C & D), а по факту имеем: F1 = ((А & B) | C) & D
 

Вложения

  • Безымянный.png
    Безымянный.png
    4,3 КБ · Просмотры: 482

savl

Lotus Team
28.10.2011
2 624
314
BIT
540
Если инетересует где это происходит, то смотрите в ПЯ библиотеку Rules, функцию ProcessConditions.
Там идет разбор условий и операторов по полю "tokconditionlist"
Все в одну строку, без расстановки скобок
 
D

deeeman

спс!
тоже копался и понял что парсит он подряд операторы без приоритета..
вторгаться в код ПЯ не получиться у меня.
придеться дробиться на мелкие правила..
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!