Фильтруйте электронную почту, указав мое имя в поле «Кому», используя procmail.
-
12-12-2019 - |
Вопрос
Используя procmail, я хочу переместить любую входящую почту, которая не содержит моего имени («Джон Доу») в поле «Кому», в папку «Нежелательная почта».
Однако следующее правило, похоже, не имеет никакого эффекта, хотя я тщательно протестировал регулярное выражение в приложениях для онлайн-тестирования, чтобы убедиться, что оно соответствует тому, что должно:
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
Если интересно, весь мой файл правил procmail:
# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin
# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
Почему мое правило не работает?
Спасибо за любую помощь!
Решение
Потому что просмотры Perl не являются частью репертуара регулярных выражений Procmail.
Вместо этого попробуйте это.
:0
* ! ^To:.*John[ ]+Doe
.Junk/
Пробел внутри [ ] должен быть пробелом и табуляцией;тот \s
Перлизм также не поддерживается.
Возможно, вам лучше использовать свой адрес электронной почты в качестве критерия фильтрации и, возможно, использовать ^TO_
специальный макрос для покрытия копии:и т. д.Вы все еще не можете справиться со скрытой копией:на ваш счет, конечно.