O Procmail não está em execução

2

Estou usando: Mutt-kz + Isync + msmtp + spamassassin + Procmail

Mutt-kz, Isync e msmtp estão funcionando. Não consigo fazer o procmail iniciar automaticamente quando chega o correio. Eu estou fazendo tudo como usuário não-root e executando o Arch Linux. O Procmail está instalado.

Estrutura das pastas:

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

O e-mail chega com este script do cronjob:

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

Aqui está o meu .forward com 644 perms.

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

Aqui está o meu .procmailrc com 644 perms.

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

Se eu executo o procmail -v eu recebo (somente as coisas importantes):

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

Eu corro:

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

Eu recebo:

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             
    
por damianjb 21.04.2015 / 04:55

2 respostas

1

Parece não haver nenhuma maneira fácil de integrar o Procmail ao isync / mbsync . Eu iria para filtragem do lado do servidor, ou possivelmente abandonando a idéia (como tal) de sincronizar o IMAP com pastas locais.

Com isso, minha resposta original provavelmente não importa muito, mas eu a preservei abaixo.

Seu arquivo .forward contém um erro de sintaxe. O damian deve ser um comentário # damian , mas neste dia e idade, a menos que você esteja executando um Sendmail legado do século passado, você pode simplesmente deixá-lo de fora.

Usar zsh como seu shell para o processamento do Procmail parece estranho; tente mudar isso para /bin/sh . Mesmo que você goste de zsh , provavelmente deve preferir evitar seus recursos no Procmail. O uso de shells não-padrão causou problemas difíceis de explicar no passado (embora os erros que eu tenha visto estivessem com tcsh ).

Você tem duas receitas spamc . Um deve ser suficiente. O segundo deve ir (o próprio spamc irá recusar mensagens que são muito grandes, de qualquer forma), mas eu também removerei o bloqueio do primeiro.

Seu DEFAULT provavelmente deve ser $HOME/Mail/Inbox , certo? Você não quer enviar e-mails em $HOME/Mail diretamente, não é?

Além disso, seu .procmailrc não é notável.

Para mais ajuda, talvez veja o link

    
por 21.04.2015 / 06:11
0

Como procmail não é usado como seu MDA, ele não será chamado.

Sugiro que você trabalhe com base em um script de shell que será acionado regularmente por cron e usará formail para alimentar explicitamente procmail .

Aqui está um esqueleto para esse script de shell:

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

orig_mailbox=${HOME}/Mail/Inbox

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

É claro que isso só funcionará se o .procmailrc remover qualquer mensagem da caixa de correio de entrada. Para ter certeza disso, sugiro finalizar sua .procmailrc por uma regra de captura de todos:

:0
${HOME}/Mail/Received
    
por 08.05.2015 / 19:28

Tags