procmail insiste em escrever para / var / mail no macOS Sierra

3

Estou tentando configurar fetchmail e procmail com uma conta do Google. Este é o meu $HOME/.fetchmailrc :

poll imap.gmail.com protocol IMAP 
   user "<email>" is jviotti here
   password '<password>'
   folder 'Inbox'
   keep
   ssl
mda 'procmail'

E esta é minha $HOME/.procmailrc :

MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/$LOGNAME/
LOGFILE=$MAILDIR/log/procmail
VERBOSE=on

Eu recebo os seguintes erros de procmail ao executar fetchmail -a -v para cada mensagem baixada:

fetchmail: IMAP> A0005 FETCH 1 RFC822.HEADER
fetchmail: IMAP< * 1 FETCH (RFC822.HEADER {2865}
reading message <email>@gmail-imap.l.google.com:1 of 22 (2865 header octets) #
fetchmail: IMAP< )
fetchmail: IMAP< A0005 OK Success
fetchmail: IMAP> A0006 FETCH 1 BODY.PEEK[TEXT]
fetchmail: IMAP< * 1 FETCH (BODY[TEXT] {3983}
 (3983 body octets) *******************************.************************.***********.*****
fetchmail: IMAP< )
fetchmail: IMAP< A0006 OK Success
procmail: Couldn't create "/var/mail/jviotti"
 not flushed
fetchmail: IMAP> A0007 STORE 1 +FLAGS (\Seen)
fetchmail: IMAP< A0007 OK Success

Observe procmail: Couldn't create "/var/mail/jviotti" not flushed . Por algum motivo, procmail insiste em escrever para /var/mail , mesmo que MAILDIR=$HOME/Mail e DEFAULT=$MAILDIR/$LOGNAME/ .

Por que isso acontece?

Olhando a página procmailrc man, descobri que ORGMAIL é padronizado como /var/mail/$LOGNAME e que DEFAULT é padronizado como ORGMAIL :

 ORGMAIL               /var/mail/$LOGNAME
                       (Unless -m has been specified, in which case it is unset)

 DEFAULT               $ORGMAIL

No entanto, mesmo depois de definir ORGMAIL para outra coisa em $HOME/.procmailrc , recebo o mesmo erro / aviso.

Observe que, apesar de eu receber este erro, meu e-mail foi baixado corretamente para $HOME/Mail .

EDIT: Veja a saída de procmail -v . Por alguma razão, ainda define minha caixa de correio do sistema para / var / mail / jviotti.

$ procmail -v
procmail v3.22 2001/09/10
    Copyright (c) 1990-2001, Stephen R. van den Berg    <[email protected]>
    Copyright (c) 1997-2001, Philip A. Guenther         <[email protected]>

Submit questions/answers to the procmail-related mailinglist by sending to:
        <[email protected]>

And of course, subscription and information requests for this list to:
        <[email protected]>

Locking strategies:     dotlocking, flock()
Default rcfile:         $HOME/.procmailrc
Your system mailbox:    /var/mail/jviotti

EDIT 2 : veja o seguinte em man procmail :

If no rcfiles and no -p have been specified on the command line, procmail will, prior to reading $HOME/.procmailrc, interpret commands from /etc/procmailrc (if present). Care must be taken when creating /etc/procmailrc, because, if circumstances permit, it will be exe- cuted with root privileges (contrary to the $HOME/.procmailrc file of course).

Aqui está escrito que antes de ler minha configuração inicial, ele vai ler /etc/procmailrc , mas esse arquivo não existe no meu sistema, e mesmo explicitamente passando -p (apontando para minha configuração inicial), caixa de correio do sistema ainda é /var/mail/jviotti .

A página man também diz:

If no rcfile is found, or processing of the rcfile falls off the end, procmail will store the mail in the default system mailbox.

O que "cai fora do fim" significa?

Aqui está a saída no arquivo de log do Procmail de uma mensagem recebida:

procmail: [49293] Tue Dec 13 14:29:20 2016 
procmail: Assigning "LASTFOLDER=/Users/jviotti/Mail/jviotti/new/1481653760.49293_2.jviotti-rmbp.local" 
procmail: Notified comsat: "jviotti@0:/Users/jviotti/Mail/jviotti/new/1481653760.49293_2.jviotti-rmbp.local" 
From jviotti Tue Dec 13 14:29:20 2016 
 Subject: Re: [resin-io/etcher] chore: add support for snapshot builds (#968) 
  Folder: /Users/jviotti/Mail/jviotti/new/1481653760.49293_2.jviotti-r         8015
    
por jviotti 13.12.2016 / 00:58

1 resposta

3

A mensagem de erro que você vê é basicamente inofensiva, mas o Procmail lhe diz que não é possível criar a caixa de entrada padrão com suas permissões atuais - você precisa ser root para criar uma caixa de correio vazia.

A criação manual com as permissões corretas deve resolver esse problema.

sudo install -o $USER -g mail -m 0600 /dev/null /var/mail/$USER

procmail -v simplesmente relata quais são os padrões compilados; ele não examina seu .procmailrc (e, se o fizesse, qualquer arquivo de receita não trivial conteria um grande número de caixas de correio com condições diferentes para quando gravar em qual).

"Fim do fim" significa que, se você tiver um .procmailrc que não diga ao Procmail para entregar em uma caixa de correio específica e interromper o processamento (como a sua), a ação final será semelhante a se as últimas linhas do seu .procmailrc foram

:0:
$DEFAULT

que também ilustra como é uma receita de entrega incondicional do Procmail.

O fragmento do arquivo de log do Procmail que você postou mostra que o Procmail está realmente executando o .procmailrc corretamente. Aparentemente, a mensagem de erro acontece enquanto está sendo inicializada, antes de começar a executar seu .procmailrc (embora eu não possa reproduzir isso exatamente, então isso é levemente especulativo).

    
por 14.12.2016 / 06:09