メールサーバーを設定しています(spamassassin + procmail + sendmail + dovecot)すべてのスパムメールを/ etc/procmailを設定したスパムフォルダにリダイレクトしたい
DEFAULT=/var/spool/mail/$LOGNAME/new
ORGMAIL=/var/spool/mail/$LOGNAME
MAILDIR=/var/spool/mail/$LOGNAME
# deliver spam to spam folder
:0:
* ^X-Spam-Status: Yes
.Spam/
そしてdovecotのメールボックス
inbox = yes
#mailbox name {
# auto=create will automatically create this mailbox.
# auto=subscribe will both create and subscribe to the mailbox.
#auto = no
# Space separated list of IMAP SPECIAL-USE attributes as specified by
# RFC 6154: \All \Archive \Drafts \Flagged \Junk \Sent \Trash
#special_use =
#}
# These mailboxes are widely used and could perhaps be created automatically:
mailbox Drafts {
special_use = \Drafts
auto = create
}
mailbox Spam {
special_use = \Junk
auto = create
}
mailbox Trash {
special_use = \Trash
auto = create
}
テスト用にスパムメールを送信すると、Thunderbirdでフォルダーが自動的に作成されず、フォルダー(システム上に存在)にユーザー権限ではなくroot権限があることがわかります。もちろん、別のメール送信後に元の権限に戻る場合は、ルート!)
見つかった解決策:
mailbox Spam {
special_use = \Junk
auto = create
}
なりました
mailbox Spam {
special_use = \Junk
auto = subscribe
}
今それは動作します
DROPPRIVS=yes
の先頭に/etc/procmailrc
を追加します
man procmailrc
:
[〜#〜] dropprivs [〜#〜] `yes 'に設定すると、procmailは持っていた可能性のあるすべての特権(suidまたはsgid)を削除します。これは、/ etc/procmailrcファイルの下半分が受信者に代わって実行されることを保証したい場合にのみ役立ちます。