Фильтруйте электронную почту, указав мое имя в поле «Кому», используя procmail.

StackOverflow https://stackoverflow.com//questions/11689667

Вопрос

Используя 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_ специальный макрос для покрытия копии:и т. д.Вы все еще не можете справиться со скрытой копией:на ваш счет, конечно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top