なかなか要求を満たすimap/pop3サーバはないな~と思ってうろうろしていたら、ひらめきました!
procmail関係のページを見ていたときに、procmailがMaildir形式のメールを格納できるってことが書いてあったのです。
  • hoge だと mailbox形式
  • hoge/. だと MHフォルダ形式
  • hoge/ だとMaildir形式
と、言うことは、postfixとqpopperはそのままで、.forwardからprocmailにかませたときにMaildirに配送してあげれば、popユーザは従来どおり、IMAPユーザはMaildir形式と言う使い分けができるのです!
と思ったら、以下のページを発見。同じことを考える人はいるのね~。
MTA(postfixなのだが)をMaildirな設定にしなくてもprocmail(3.14以降)を噛ませばMaildirにできるやん。しかもsystemwideじゃなく、user別に。

そこで、この路線で作業開始です!(さきほどの調査の項とだいぶかぶりますが・・・)
  1. まずは、portsからcourier-imapをインストール。make引数は WITH_DRACとWITH_CRAM
  2. 続いて、courier-imapの設定。
    # cd /usr/local/etc/courier-imap
    # cp authdaemonrc.dist authdaemonrc    ←認証デーモンの設定
    # cp imapd.dist imapd     ←imapdの設定
    # cp imapd-ssl.dist imapd-ssl     ←imapd-sslの設定
    # cp imapd.cnf.dist imapd.cnf     ←imapd-sslのキーを作るための設定
    
    上から順番に、中身をみながら適当に直す。
    • authdaemonrc はそのまま。
    • imapdは、IMAP_CAPABILITYの行をコメントしてあるCRAM_MD5を含む奴と交換。IMAPDSTART=YESに変更。
    • imapd-ssl は、IMAPDSSLSTART=YESに変更。
    • imapd.cnf は、req_dnセクションを自分のサイトに合わせて変更。
  3. SSL用証明書の作成。
    popは今までのqpopperを使うので、imap用のみ。
    # mkimapdcert
    
    このコマンドで、/usr/local/share/courier-imap/imapd.pemができるらしい。
  4. 起動スクリプト
    # cd /usr/local/etc/rc.d
    # rm courier-imap-pop3d.sh.sample
    # rm courier-imap-pop3d-ssl.sh.sample
    # mv courier-imap-imapd.sh.sample courier-imap-imapd.sh
    # mv courier-imap-imapd-ssl.sh.sample courier-imap-imapd-ssl.sh
    
    これは、ポート143と993で使おうと思ってこの二つを残したんだけど、両方のスクリプトからauthdaemon が起動/停止させられるため、両方動いてる状態で片方を止めると認証ができなくなってしまう。まあ、実害はないから良いか。
  5. inetd.confの修正。imapの行をコメントアウトして再起動。
  6. imap用のユーザDBの作成。
    # userdb ユーザ名 set uid=ユーザID gid=グループID home=ホームディレクトリ
    # userdbpw -hmac-md5 | userdb ユーザ名 set hmac-md5pw
    Password:  ←パスワード
    Reenter password:  ←再入力
    # makeuserdb
    
    ※ ここですごくはまったんだけど、uidとかhomeをちゃんと設定してあげないと、エントリーが有効にならないらしい。ユーザ名とパスワードだけ書いてあれば良いような気はするんだけど・・・。
  7. 起動スクリプトを使って、imapサーバを起動。

ここまでが、システムサイドでやること。
後は、個人でメールの配送をMaildir形式にしないといけない。いろいろ探した結果、ここのmbox2maildirで良さそう。
このスクリプトを取ってきてpathを通したら、
% cd
% maildirmake Maildir
% mbox2maildir /var/spool/ユーザ名 Maildir
% mbox2maildir Mail/Sent Maildir/.Sent
% mbox2maildir Mail/Trash Maildir/.Trash
% mbox2maildir Mail/Draft Maildir/.Draft
             :
って感じでimapのフォルダ単位で変換できる。Becky!で試した結果、
  • Beckyから見えるフォルダ名が hoge だとすると、Maildir/.hogeになる。
  • フォルダが階層構造になっている場合は、階層を.で区切る。
  • フォルダ名に . は含められない。
後は、今まではBecky!で受信箱と同じレベルにIMAPのフォルダがあったんだけど、全部受信箱の中になってしまった。
すべてのフォルダの変換が済んだら、最後に .procmailrcを書き換えて新しいメールの配送をMaildirにする。
私の.procmailrcの頭はこんな感じ。
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$MAILDIR/PROCLOG
LOCKFILE=$MAILDIR/.lockmail
肝は、DEFAULT=の行らしい。後は、今までMHフォルダ用に hoge/. で終わらせてた配送先を、hoge/ に変更して、UNIX側の設定はおしまい。

最後に、Becky!の設定。と言っても、メールボックスの設定の、IMAPフォルダ:のところを、今まで"Mail"だったのを空っぽにするだけで良かった。
Becky!は、sslが使えなくて面白くないので、一応Outlook Expressでも試してみた。
imap, imaps共にPLAIN認証ならばうまく行ったが、md5, sha1共にうまく行かなかった・・・。まあ、imapsで使えばPLAINでも良いとは思うんだけど・・・。

これで、今回のメール環境の改善はおしまい。ちょっとは早くなったかな?

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: メール環境の改善(実現編)

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/283

コメントする

このブログ記事について

このページは、falseが2004年3月18日 23:51に書いたブログ記事です。

ひとつ前のブログ記事は「メール環境の改善(調査編)」です。

次のブログ記事は「自宅でもWanderlust」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1