То, что я использую ниже, работает, но тестовое электронное письмо попадает как в папку «Входящие», так и в целевую папку (Stuff). Есть ли способ избежать дублирования сообщений IMAP?Procmail копирует сообщение, а не перемещает его
VERBOSE=on
PATH=/usr/bin:/usr/local/bin
MAILDIR=$HOME/boxes/domain.com/fred^/.imap/
LOGFILE=$HOME/proclog
SHELL=/bin/sh
:0:
* ^Subject:.*test
Stuff
Результат журнала:
procmail: Assigning "SHELL=/bin/sh"
procmail: Match on "^Subject:.*test"
procmail: Locking "Stuff.lock"
procmail: Assigning "LASTFOLDER=Stuff"
procmail: Opening "Stuff"
procmail: Acquiring kernel-lock
procmail: Unlocking "Stuff.lock"
procmail: Notified comsat: "[email protected]:/usr/home/username/boxes/domian.com/fred^/.imap//Stuff"
From [email protected] Sat Jan 24 00:04:42 2015
Subject: test
Folder: Stuff 2213
Update: Предполагая сообщение дублируется, когда он находит совпадение, вот как я пытался разобраться, а затем обнаружить и устранить дубликат:
VERBOSE=yes
LOGABSTRACT=all
PATH=/usr/bin:/usr/local/bin
LOGFILE=$HOME/proclog
SHELL=/bin/sh
MAILDIR=$HOME/boxes/mydomain.com/
INBOX=$HOME/boxes/mydomain.com/fred
STUFF=$HOME/boxes/mydomain.com/fred^/.imap/Stuff
:0
* ^Subject:.*test
${STUFF}
:0 Whc: msgid.lock
| formail -D 4096 $MAILDIR/msgid.cache
:0 a:
dev/null
Я также видел этот пример:
:0 Wh:dup
| formail -D 4096 $MAILDIR/msgid.cache
procmail вызван рецептом фильтра хост-провайдера - все сообщения для почтового ящика «fred» через procmail, расположенные в/usr/local/bin/procmail. Здесь мой опыт попадает в стену, но, похоже, мой хост использует Postfix под Dovecot. – bobzIlla
По какой-то причине он создает копию с тем же идентификатором сообщения. Обнаружение дубликатов может работать с помощью:: 0 Whc: msgid.lock | но после нескольких десятков попыток я не могу составить рецепт для успешного сортировки по теме, а затем вытеснить дубликат. Я также видел «Wh: dup», но что более уместно? – bobzIlla
Сначала вам нужно удалить дубликаты, а затем доставить то, что осталось. – tripleee