私は使用しています:Mutt-kz + Isync + msmtp + spamassassin + Procmail
Mutt-kz、Isync、msmtpが実行されています。メールが届いたときにprocmailが自動的に開始されることはできません。私はroot以外のユーザーとしてすべてのことを行い、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
2回目の実行:
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
isync
Procmailを/に統合する簡単な方法はないようですmbsync
。私はサーバー側のフィルタリングを選択するか、IMAPをローカルフォルダと同期させる(非常にきれいな)アイデアを放棄します。
したがって、元の答えは重要ではないかもしれませんが、以下にしておきます。
ファイル.forward
に構文エラーがあります。これはdamian
コメントでなければ# damian
なりませんが、今日では前世紀の遺産であるSendmailを実行しない限り、コメントを省略できます。
zsh
Procmailを処理するためにシェルを使用するのは奇妙です/bin/sh
。気に入ったとしても、zsh
Procmailでその機能を使用することは避けてください。過去に非標準シェルを使用すると、説明できない問題が発生しました(私が見たバグは次のとおりですtcsh
)。
2つのレシピがありますspamc
。一つで十分です。 2番目は行かなければspamc
なりませんが(とにかく大きすぎるメッセージはそれ自体を拒否しました)、最初のロックも削除します。
DEFAULT
それはあなたが間違いないですよ$HOME/Mail/Inbox
ね?ダイレクトメールをしたくないですか$HOME/Mail
?
それ以外はあなたの.procmailrc
成果が目立たなかった。
詳細については、次を参照してください。http://iki.fi/era/mail/procmail-debug.html
答え2
MDAとして使用されないため、procmail
呼び出されません。
定期的に実行され、それを明示的cron
に提供するために使用されるシェルスクリプトに基づいて作業することをお勧めします。formail
procmail
以下はそのようなシェルスクリプトのスケルトンです:
$ 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