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