В основном вам нужен доступ к оболочке на почтовом сервере, чтобы запустить там Procmail. Если у вас есть необходимые привилегии, выполнить то, что вы просите, просто, хотя ваши требования немного неясны.
Я предполагаю, что вы хотите добавить [groupname]
к сообщениям из groupname-list@example.net
если его еще нет.
:0fhw
* ^From: groupname-list@example\.net\>
* ! ^Subject:( Re:)? *\[groupname]
* ^Subject:\/.+
| formail -I "Subject: [groupname]$MATCH"
Флаг f
говорит об изменении заголовка путем фильтрации в конвейере в действии; h
означает, что действие применяется только к заголовку (чтобы уменьшить объем данных для копирования неизмененных туда и обратно); и w
говорит, чтобы проверить, что действие успешно.
Токен \/
special regex вызывает совпадение после того, как оно записывается в специальную переменную MATCH
.
Поскольку точка и левая квадратная скобка являются метасимволами регулярных выражений, нам нужен обратный слеш, чтобы буквально соответствовать им. Граница \>
Слово гарантирует , что net
не является частичное совпадение в более адрес (скажем ...@example.netcom.whatever
, хотя это не совсем несложный (он будет по- прежнему соответствовать на ...@example.net.uk
для пример).
В любом случае, вам нужно заменить первое условие чем-то, что точно соответствует заголовку в сообщениях, на которые вы ориентируетесь. Например, здесь не соответствует From: List Name <groupname-list@example.net>
(потому что регулярное выражение не содержит выражения для пропуска текста вверх через <
символ).
Остальное должно быть тривиально, чтобы понять, я надеюсь.