postfix設定--cyrusのメールボックスサブディレクトリへ foo+subdir@domain で配送可能にする
メールを foo+subdir@domain へ送ると、IMAPサブフォルダ user.foo.subdir
(つまりユーザー foo の
サブフォルダ subdir)へ送られるように設定する。
ここでは、ユーザーがフォルダさえ作れば直ちにそこへの配送ができるように設定する。
まず、/etc/postfix/main.cf に次のように追記する。(パスは適宜読み替えたし。)
また、mailbox_transport = lmtp が/etc/postfix/main.cfにあればそれをコメントアウトして、以下を追記する。
mailbox_transport = cyrus
/etc/postfix/master.cf にcyrusの設定があればそれをコメントアウトし、
以下を追記する。
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} -a ${user} ${user}
これは、良くある設定に、 -a ${user} を加えただけである。
これでcyrusはユーザーとして認証されるのでユーザーの如何なるサブディレクトリにも配送できる。
なお、サブフォルダが存在しないときはユーザーのINBOXに配送される。
応用例
スパムの自動振り分け
ユーザーが例えばspamというフォルダを作れば、スパムメールがそこに配送されるよ
うに設定するのは簡単である。
spamassassinをpostfixから使う方法
がspamassassin
Wikiのこのページで紹介されて
いる。そこの最後のfilter.shでは、スパムはスパム収集用のアカウントに送られるよ
うに書かれているが、そのかわりに、"元々の受取人+spam"に配送するようにちょっと
だけスクリプトを変えれば良い。
例えば、
SPAMDST=`echo "${4}" | sed 's/@.*$//' | sed 's/\+.*$//'`+spam
にスパムが配送されるようにスクリプトを直せば良い。
戻る