procmail이 실행되고 있지 않습니다

procmail이 실행되고 있지 않습니다

나는 다음을 사용하고 있습니다: Mutt-kz + Isync + msmtp + spamassassin + Procmail

Mutt-kz, Isync 및 msmtp가 실행 중입니다. 메일이 도착할 때 procmail이 자동으로 시작되도록 할 수 없습니다. 나는 루트가 아닌 사용자로 모든 작업을 수행하고 Arch Linux를 실행합니다. 프로메일이 설치되었습니다.

폴더 구조:

$HOME/Mail/Inbox
          /Enviados
          /Borradores
          /Spam
          /P-Spam
          /Trash

이메일에는 다음 cronjob 스크립트가 함께 제공됩니다.

#!/bin/bash
mbsync googlemail && notmuch new

이것은 권한 644를 가진 내 .forward입니다.

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #damian"

이것은 권한 644를 가진 내 .procmailrc입니다.

PATH=/bin:/usr/bin
LOGFILE=$HOME/Mail/procmail.log
LOGABSTRACT=ALL
VERBOSE=YES   
DEFAULT=$HOME/Mail
MAILDIR=$HOME/Mail
SHELL=/usr/bin/zsh

:0fw: spamassassin.lock
* < 512000
| /usr/bin/vendor_perl/spamc 

:0fw
| /usr/bin/vendor_perl/spamc 

:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Spam

:0:
* ^X-Spam-Status: Yes
P-Spam

procmail -v를 실행하면 다음과 같은 결과를 얻습니다(중요한 내용만).

procmail v3.22 2001/09/10
Locking strategies:     dotlocking, fcntl(), lockf(), flock()
Default rcfile:         $HOME/.procmailrc
Your system mailbox:    /var/spool/mail/damian

두 번째 실행:

procmail DEFAULT=/dev/null VERBOSE=yes /dev/null </dev/null

나는 얻다:

procmail: [1970] Tue Apr 21 22:16:37 2015
procmail: Rcfile: "/dev/null"
procmail: Assigning "MAILDIR=/home/damian"
procmail: Assigning "LASTFOLDER=/dev/null"
procmail: Opening "/dev/null"
Folder: /dev/null             

답변1

isyncProcmail을 / 에 통합하는 쉬운 방법은 없는 것 같습니다 mbsync. 나는 서버 측 필터링을 선택하거나 IMAP을 로컬 폴더와 동기화하는 (아주 깔끔한) 아이디어를 포기할 것입니다.

따라서 원래 답변은 중요하지 않을 수 있지만 아래에 남겨 두겠습니다.


파일 .forward에 구문 오류가 있습니다. 이것은 damian주석이어야 # damian하지만 오늘날에는 지난 세기의 유산인 Sendmail을 실행하지 않는 한 주석을 생략할 수 있습니다.

zshProcmail 처리를 위해 쉘을 사용하는 것이 이상해 보입니다 /bin/sh. 마음에 든다고 해도 zshProcmail에서 해당 기능을 사용하는 것은 피하는 것이 좋습니다. 과거에 비표준 쉘을 사용하면 설명할 수 없는 문제가 발생했습니다(내가 본 버그는 다음과 같습니다 tcsh).

두 가지 요리법이 있습니다 spamc. 하나면 충분합니다. 두 번째는 가야 spamc하지만(어차피 너무 큰 메시지는 자체적으로 거부함) 첫 번째 잠금도 제거하겠습니다.

DEFAULT그것은 당신 것이 틀림없어요 , $HOME/Mail/Inbox그렇죠? 다이렉트 메일을 원하지 않습니까 $HOME/Mail?

그 외에는 당신의 .procmailrc성과가 눈에 띄지 않았습니다.

자세한 내용은 다음을 참조하세요.http://iki.fi/era/mail/procmail-debug.html

답변2

MDA로 사용되지 않으므로 procmail호출되지 않습니다.

주기적으로 실행되고 이를 명시적 cron으로 제공하는 데 사용되는 쉘 스크립트를 기반으로 작업하는 것이 좋습니다 .formailprocmail

다음은 그러한 쉘 스크립트의 뼈대입니다:

$ cat <<eof >splitter.sh
#!/bin/sh

orig_mailbox=${HOME}/Mail/Inbox

[ -s ${orig_mailbox} ] && formail -s <${orig_mailbox} procmail ${HOME}/.procmailrc
eof

물론 이것은 .procmailrc수신 메일함에서 메시지를 삭제한 경우에만 작동합니다. 이를 보장하려면 .procmailrc포괄적인 규칙으로 마무리하는 것이 좋습니다.

:0
${HOME}/Mail/Received

관련 정보