Googleアカウントでfetchmail
とprocmail
を設定しようとしています。これは私の$HOME/.fetchmailrc
です:
poll imap.gmail.com protocol IMAP
user "<email>" is jviotti here
password '<password>'
folder 'Inbox'
keep
ssl
mda 'procmail'
そしてこれは私の$HOME/.procmailrc
です:
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/$LOGNAME/
LOGFILE=$MAILDIR/log/procmail
VERBOSE=on
ダウンロードされるすべてのメッセージに対してfetchmail -a -v
を実行すると、procmail
から次のエラーが発生します。
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
procmail: Couldn't create "/var/mail/jviotti" not flushed
に注意してください。何らかの理由で、/var/mail
とMAILDIR=$HOME/Mail
であっても、procmail
はDEFAULT=$MAILDIR/$LOGNAME/
への書き込みを要求します。
なぜそうなのですか?
procmailrc
のマニュアルページを見ると、ORGMAIL
のデフォルトは/var/mail/$LOGNAME
であり、DEFAULT
のデフォルトはORGMAIL
であることがわかりました。
ORGMAIL /var/mail/$LOGNAME
(Unless -m has been specified, in which case it is unset)
DEFAULT $ORGMAIL
ただし、ORGMAIL
を$HOME/.procmailrc
で別の値に設定した後でも、同じエラー/警告が表示されます。
このエラーが発生しても、メールが$HOME/Mail
に正しくダウンロードされていることに注意してください。
EDIT:procmail -v
の出力を参照してください。何らかの理由で、システムメールボックスが/ 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
編集2:man procmail
から以下を参照してください:
コマンドラインでrcfilesと-pが指定されていない場合、procmailは$ HOME/.procmailrcを読み取る前に、/ etc/procmailrc(存在する場合)からのコマンドを解釈します。/etc/procmailrcを作成するときは注意が必要です。状況が許せば、root権限で実行されるためです(もちろん$ HOME/.procmailrcファイルとは異なります)。
これは、ホーム構成を読み取る前に/etc/procmailrc
から読み取ることを示していますが、そのファイルはシステムに存在せず、明示的に-p
(ホーム構成を指す)を渡しても、システムメールボックスはまだ/var/mail/jviotti
です。
マニュアルページにも次のように書かれています。
Rcfileが見つからない場合、またはrcfileの処理が終了しない場合、procmailはメールをデフォルトのシステムメールボックスに保存します。
「終わりから落ちる」とはどういう意味ですか?
1つの受信メッセージからのProcmailログファイルの出力は次のとおりです。
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
表示されるエラーメッセージは基本的に無害ですが、現在の権限ではデフォルトの受信トレイを作成できないことを示すProcmailです。空のメールボックスを作成するにはrootである必要があります。
適切な権限で手動で作成すると、この問題が解決するはずです。
Sudo install -o $USER -g mail -m 0600 /dev/null /var/mail/$USER
procmail -v
は、コンパイルされたデフォルトが何であるかを単に報告します。 .procmailrc
はまったく調べられません(調べた場合、重要なレシピファイルには、いつどの書き込みを行うかについてさまざまな条件のメールボックスが多数含まれます)。
「Falloffthe end」とは、Procmailに特定のメールボックスに配信して処理を停止するように指示しない.procmailrc
がある場合(あなたのような)、最終的なアクションは、.procmailrc
の最後の行が
:0:
$DEFAULT
これは、無条件のProcmail配信レシピがどのように見えるかも示しています。
投稿したProcmailのログファイルスニペットは、Procmailが実際に.procmailrc
を正常に実行していることを示しています。エラーメッセージは、起動中、.procmailrc
の実行を開始する前に発生するようです(ただし、これを正確に再現することはできないため、これはやや推測的です)。