Я нашел много примеров для procmail для сопоставления заголовка From: с помощью wilcards, но я хотел бы сделать точное сопоставление, чтобы предотвратить сопоставление From:. * Jgordon@example.com как jgordon@example.com и bjgordon@example.com
Возможно ли это, и если да, то как?
Обычная процедура - добавить якоря границы слова с обеих сторон от целевого адреса.
:0
* ^From:(.*\<)?jgordon@example\.com\>
...
Если вы хотите сопоставить ровно два адреса электронной почты и никаких других, создайте регулярное выражение, которое будет соответствовать только этим двум. В вашем конкретном примере b?jgordon@example\.com
будет соответствовать обоим bjgordon
и jgordon
. Распространенный аналогичный шаблон - желание сопоставить оба firstname.lastname
и flastnam
; образец для этого был бы (firstname\.lastname|flastnam)@example\.com
.
В .*
это то, что соответствует дополнительным символам. Вам нужно только сопоставить пробелы после имени заголовка, поэтому вы можете изменить это на *
.
* ^From: *jgordon@example.com
Я подозреваю, что можно также закрепить конец заголовка, чтобы избежать совпадения дополнительных символов в конце, но я сам этого не тестировал.
* ^From: *jgordon@example.com$
Я немного запутался. У вас должен быть procmail для каждого пользователя. Если вы сложили их в одну, вот в чем проблема. Конечно, Unix справится с этим! Просто скажи, как с этим справиться. Учтите, что он стекает вниз. Таким образом, вы можете раздавливать вещи по мере их поступления. Сначала зацепите bjgordon.
:0
* To: bjgordon@example.com
bjgordon_file
:0
* To: jgordon@example.com
jgordon_file
Если вы хотите, чтобы он пережил правило, используйте правило копии:
:0 c:
* From: root <root@foo.bar.com>
root_foo_mail.`date +%y%m%d`