Поэтому, если вы видели / использовали mailman , вы будете знать, что он добавит тег [groupname] в строку темы писем, отправленных через него, если тег еще не существует.

Можно ли это сделать с procmail?

У меня дома работает мой почтовый компьютер exim . У меня есть несколько псевдонимов электронной почты, которые просто пересылают письма мне, а иногда и мне и моей жене.

Было бы очень хорошо, если бы у этих писем был предметный тег, который я мог бы легко использовать для поиска / фильтрации этих писем. Нечто подобное mailman имеющему [groupname] в заголовке темы, но мне не нужны / не нужны все функции mailman .

Обратите внимание, что мой почтовый клиент этого не сделает. Я бы очень хотел / нужно / хотел бы сделать это на почтовом сервере.

1 ответ1

0

В основном вам нужен доступ к оболочке на почтовом сервере, чтобы запустить там 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> (потому что регулярное выражение не содержит выражения для пропуска текста вверх через < символ).

Остальное должно быть тривиально, чтобы понять, я надеюсь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .