Будет ли procmail "помечать" входящую электронную почту на основе:, но только если она еще не помечена?

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

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

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

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

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

1 ответ

Решение

В основном вам нужен доступ к оболочке на почтовом сервере, чтобы запустить там Procmail. Если у вас есть необходимые привилегии, выполнить то, что вы просите, просто, хотя ваши требования немного неясны.

Я предполагаю, что вы хотите добавить [groupname] на сообщения от groupname-list@example.net если его еще нет

:0fhw
*   ^From: groupname-list@example\.net\>
* ! ^Subject:( Re:)? *\[groupname]
*   ^Subject:\/.+
| formail -I "Subject: [groupname]$MATCH"

f флаг говорит, что нужно изменить заголовок путем фильтрации в конвейере в действии; h означает, что действие применяется только к заголовку (чтобы уменьшить объем данных для копирования неизмененных туда и обратно); и w говорит, чтобы проверить, что действие успешно.

\/ специальный токен регулярного выражения вызывает совпадение после его записи в специальную переменную MATCH,

Поскольку точка и левая квадратная скобка являются метасимволами регулярных выражений, нам нужен обратный слеш, чтобы буквально соответствовать им. \> граница слова гарантирует, что net не является частичным совпадением по длинному адресу (скажем, ...@example.netcom.whatever) хотя это не совсем надежно (все равно ...@example.net.uk например).

В любом случае, вам нужно заменить первое условие чем-то, что точно соответствует заголовку в сообщениях, на которые вы ориентируетесь. Например, тот, который здесь не совпадает From: List Name <groupname-list@example.net> (потому что регулярное выражение не содержит выражения для пропуска текста через < персонаж).

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

Другие вопросы по тегам