вот мои рецепты procmail:
:0
* ^Subject: [JIRA] (EDRV-*) *$
.JIRA.edrive/new
:0
* ^Subject: [SPAM] *$
.SPAM/new
:0
* ^X-Spam-Status: Yes
.SPAM/new
:0
* .*
new
Я хочу поместить свои сообщения с [JIRA] (EDRV-XXX) в теме в папку JIRA / edrive почтового ящика, а сообщения с пометкой [SPAM] в теме - в папку SPAM.
Но что я получаю сейчас:
procmail: [8652] Sat Aug 27 19:08:19 2016
procmail: Assigning "SHELL=/bin/bash"
procmail: No match on "^Subject: [JIRA] (EDRV-*) *$"
procmail: No match on "^Subject: [SPAM] *$"
procmail: No match on "^X-Spam-Status: Yes"
procmail: Match on ".*"
procmail: Assigning "LASTFOLDER=new/msg.qVktB"
procmail: Opening "new/msg.qVktB"
procmail: Acquiring kernel-lock
Subject: [JIRA] (EDRV-100) xxxxxxx
Folder: new/msg.qVktB><------><------><------><------><------><------> 2795
Где ошибка?
Это очень простая ошибка регулярного выражения. Чтобы соответствовать [
или (
буквально, вы должны экранировать их с помощью обратной косой черты.
То же самое относится к любому метасимволу регулярного выражения - .
, *
, |
, и т.д.
Кроме того, чтобы соответствовать безоговорочно, просто не ставьте никаких условий.
Я предполагаю, что вы на самом деле не хотели разрешать пробелы только после матчей, поэтому я их тоже убрал. Если вы хотите сказать "что-нибудь", это .*
в регулярном выражении, но нет смысла иметь условие, которое соответствует чему-либо.
:0
* ^Subject: \[JIRA] \(EDRV-.*\)
.JIRA.edrive/new
:0
* ^Subject: \[SPAM]
.SPAM/new
:0
* ^X-Spam-Status: Yes
.SPAM/new
:0
new
Вам нужно использовать обратную косую черту для escape-символов регулярного выражения, которые вы хотите сопоставить как литералы.
Похоже, вы используете вашу почту, хранящуюся в формате Maildir. Не знаю, исключили ли вы заголовок или его нет. Это доставит файлы в соответствующие подкаталоги почты. Он включает файл журнала, чтобы вы могли убедиться, что сообщения были правильно обработаны.
# .procmailrc - procmail configuration file # Variable definitions MAILDIR=$HOME/Maildir/ LOGFILE=$MAILDIR/procmail.log DEFAULT=$MAILDIR
Эти правила должны соответствовать сообщениям и доставлять их new
подпапка указанного почтового ящика.
:0 * ^Subject: \[JIRA\] \(EDRV-.*\) .JIRA.edrive/ :0 * ^Subject: \[SPAM\] .SPAM/ :0 * ^X-Spam-Status: Yes .SPAM/ # Anything left goes to inbox