Hatena::ブログ(Diary)

ツユダクの肉増しのRuby on Railsの初心者で このページをアンテナに追加 RSSフィード

2015-08-18

postfixとdovecot-lmtpを同じホストで使う意味ある?

| 00:47 | postfixとdovecot-lmtpを同じホストで使う意味ある? - ツユダクの肉増しのRuby on Railsの初心者で を含むブックマーク postfixとdovecot-lmtpを同じホストで使う意味ある? - ツユダクの肉増しのRuby on Railsの初心者で のブックマークコメント

メールボックスサーバが別のホストならわかるけど、同一だった場合意味あるのか?と思った。

タイトルの構成にするメリット

postfix vdaパッチなしでmaildir quotaを実現できる

新しいpostfixのバージョンにはvdaパッチがバグるとかありそうなので、パッチなし環境というのは少なくとも安定してると言えそう。

パフォーマンスがいい

postfix がメールボックスへの配送した場合、配送とquotaの処理をpostfixすることになるのでキューが詰まる、ということが起きるんじゃないかな。
その点、メールボックスの配送とquotaをdovecot-lmtpに任せた場合、上の仕事からpostffixのプロセスが開放されるのでより多くのメールを処理できる、ってことになるはず。





パフォーマンスあたりについて下記記事が言及してた。
http://ya.maya.st/d/201103c.html

_ dovecotIMAP/POP サーバなので、メールボックスの扱いかたを知っている。どのユーザのメールボックスがどの場所に置いてあるかとか、mbox なのか Maildir なのかとか。もちろん postfix 側でもそれは設定することができるけど、dovecot と完全に同じ設定になっていなければならず、そのへんをチェックするのはめんどくさい。メールボックスへのアクセスを dovecot に一元化してしまえばそんなの気にしなくてもよくなる。

_ メールボックスに格納されるのは mbox だの Maildir だのといった形式的なものだけでなく、フォルダにどんなメールがあるかとかどのメールが未読でどれが既読かといった情報も含まれる。LDA/LMTP でローカル配送をおこなうと、配送が完了した時点でこのインデックスの更新もおこなわれる。MTA の LDA や procmail などの汎用品で配送する場合、インデックスの更新はログインしてメールボックスにアクセスしたときにおこなわれることになるが、前回ログアウト時からの差分が大きいとこの時間が馬鹿にならず、ひじょーに重く感じることになる。ローカル配送を LDA/LMTP でおこなうと IMAP が軽くなる。

_ ということで、dovecot の LDA/LMTP を使うことにはたくさんのメリットがありデメリットがない。もちろん、これは POP/IMAP サーバが dovecot ではなく cyrus などでも同じことがいえる。IMAP サーバに LDA/LMTP の機能があるならば MTA のものを使わずそっちを使うべき。

_ LDA と LMTP のどちらを使うか。LMTP は並列配送度を上げられるので大量のメールが届く環境ではかなり高速化できるかもしれないとか、LMTP は TCP で listen することもできるのでメールを受けるホストとメールボックスを置くホストを物理的に分離することが容易になるとか、LDA はメール1通ごとにプロセスを起動するけど LMTP はデーモンなのでプロセス起動のオーバーヘッドがないとかいうメリットがあるけど、うちのような小規模なところでは大差ない:-)。


lmtp使いましょう!!