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

253
hymie

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

Можно ли это сделать с помощью procmail?

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

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

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

0

1 ответ на вопрос

0
tripleee

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

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

Я удалил некоторый умозрительный текст о том, как настроить канал в Exim. Я погуглил немного, и мои предположения, кажется, далеко. tripleee 8 лет назад 0
Моя просьба была не такой ясной, как могла бы быть. Но я думаю, что вы дали мне указатель, мне нужно выяснить, что я пытаюсь сделать. Единственная реальная разница в том, что я основываюсь на адресе To:, а не на From :. Позвольте мне попробовать это ... hymie 8 лет назад 0

Похожие вопросы