□Courier-mta+Postfix+dracでIMAP対応に(Courier-IMAPのインストール)
参考URL:
http://www.courier-mta.org/
http://www.courier-mta.jp/?2009.01.06 無くなってます
http://www.atmarkit.co.jp/flinux/rensai/qmail02/qmail02c.html
http://mjm4u.net/oss/courier-imap/imap/INSTALL.html
> Courier-mtaは、オープンソースの高機能メールサーバースイートです。
> SMTP/POP/IMAP/Mailinglist/Webmail/Calendar/Fax の機能を備えており、
> SMTP/POP/IMAP over SSL/TLS に対応しています。SMTPはSMTP Auth に
> 対応しています。
だそうです。ただ、mtaとしてはPostfixを使いたいし、メール送信時の
ユーザー認証などの絡みで、Courier-mtaに統一するのはちと難しい。
というわけで、既存のソフトと絡めつつIMAP対応のためのインストール
をしてみる。
1.まずはPostfixをMaildir対応にする
/etc/postfix/main.cf の中を
> #home_mailbox = Mailbox
> home_mailbox = Maildir/
(> #mailbox_command = をコメントアウト)
というようにすると、
> drwx——??? 5 kabu???? users??????? 4096 Mar? 3 10:41 Maildir/
と言うディレクトリが出来て、この中にメールが入ります。
これだけ。
2.Courier-imapのインストール。
POP3だけでなくIMAP4も使いたい、という場合にはCourier-IMAPを置いて
他に選択肢はほぼないっぽい。ただ、これだけでは dracd には対応して
いないので、POP before SMTP を実装するには小細工が必要。
ま、なにはさておきインストール。Courier-IMAPのVer4からは、認証に
関する部分が外だしとなったので、まずはそれをインストールしないと
本体が入れられない。
tar xvjf package/courier-authlib-0.62.1.tar.bz2
cd ./courier-authlib-0.62.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–with-mailuser=mail \
–with-mailgroup=mail \
–without-authuserdb \
–without-authpam \
–without-authldap \
–without-authvchkpw \
–without-authpgsql \
–without-authmysql \
–without-authcustom \
–without-authpipe
とりあえず shadow で認証するので、それ以外の認証方式は全部 without
しておく。つまり本体の方でも –without-authcram で認証を暗号化しな
い。
make
make install
make install-migrate
make install-configure
そしたら /etc/authlib/authdaemonrc に設定ファイルが生成されるので
いぢらなくてもいいけど確認すること。
で、
/usr/sbin/authdaemond start
とすることで、認証要デーモンが起動する。
つづいて Courier-IMAP 本体のインストール。こちらは root 以外の
ユーザー権限でコンパイルしないといけない。(てかさ、authlib も
そうしなくていいのか?ポリシーが不完全なのかな?良く判らん)
tar xvjf package/courier-imap-4.4.1.tar.bz2
cd courier-imap-4.4.1/
chown -R mail ./*
su – mail
cd /usr/src/courier-imap-4.4.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–without-authcram
make
make check
exit
make install
make install-configure
さて、これで入ったので必要に応じて /etc/imapd とか /etc/pop3d とか
を修正して、
/usr/libexec/imapd.rc start
/usr/libexec/pop3d.rc start
とすると動きます。
試しに POP3 でアクセスすると
> # telnet localhost pop3
> Trying 127.0.0.1…
> Connected to localhost.
> Escape character is ‘^]’.
> +OK Hello there.
> user testuser
> +OK Password required.
> pass testpasswd
> +OK logged in.
> quit
> +OK Bye-bye.
> Connection closed by foreign host.
と言う感じになります。ログ(/var/log/maillogとか)には
> Mar? 3 16:54:30 big70 pop3d: Connection, ip=[::ffff:127.0.0.1]
> Mar? 3 16:54:34 big70 pop3d: LOGIN, user=testuser, ip=[::ffff:127.0.0.1]
> Mar? 3 16:54:38 big70 pop3d: LOGOUT, user=testuser, ip=[::ffff:127.0.0.1], top=0, retr=0, rcvd=6, sent=
> 30, time=4
と言うように出力されます。
3.Courier-imapのdrac対応
drac自体は「□postfix = drac + qpopper」を見てもらうとして、
Courier-imapをdrac対応にする仕組みとしては、認証が通ったら
dracauth()で該当IPをdracに登録する外部プログラムを呼び出す。
Courier-imap3系では
http://mail.cc.umanitoba.ca/drac/courier-exec.txt
をダウンロード&コンパイル&インストールすればよかったけど、
Courier-imap4系ではこの方法ではだめ。
http://www.smalltown.ne.jp/~usata/pub/patch/
ここからパッチを取ってきて、drac-add とおんなじことを本体に
組み込んでしまう。ただし、courier-imap-4.1.3では大丈夫だが、
4.4.1ではダメだったので、パッチが失敗しているところを手動で
修正すればいい。(Makefile.am.rejとMakefile.in.rejをみれば判る)
cd /usr/src/courier-imap-4.4.1/
patch -p0 < ./courier-imap-4.1.0-drac.patch
chown -R mail ./*
su – mail
cd /usr/src/courier-imap-4.4.1/
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–without-authcram
make
make check
exit
make install
make install-configure
として、 /etc/imapd とか /etc/pop3d の最後に以下を追加。
> DRACHOST=localhost
で、あとは
/usr/libexec/imapd.rc stop
/usr/libexec/pop3d.rc stop
/usr/libexec/imapd.rc start
/usr/libexec/pop3d.rc start
して、IAMPとかPOP3でログインしてみる。すると、
> # db_dump -p /etc/postfix/dracd.db
> VERSION=3
> format=print
> type=hash
> db_pagesize=512
> HEADER=END
>? 192.168.0.21
>? 1179458014
> DATA=END
というように、アクセスしたIPアドレスが記録される。
あとは /etc/rc.d/rc.M にでも
> # Courier-IMAP(IMAP)
> if [ -x /usr/libexec/imapd.rc ]; then
>??? echo -n ” imapd”
>??? /usr/libexec/imapd.rc start
> fi
>
> # Courier-IMAP(POP3)
> if [ -x /usr/libexec/pop3d.rc ]; then
>??? echo -n ” pop3d”
>??? /usr/libexec/pop3d.rc start
> fi
と足しておけばOK。
★補足:Maildir化してもコマンドラインからメールを読む
参考URL:
http://www.emaillab.org/mutt/index.html
http://www.gnu.org/software/libiconv/
Maildir化すると、qmailをインストールするかEmacs+mewなどを使うと言う
てもあるが、ここでは色々なメールボックスタイプに対応しているmuttを
使うことにする。
まずは S-Lang と libiconv のインストール。
tar xvzf package/libiconv-1.12.tar.gz
cd slang-2.1.0/
./configure –prefix=/usr
make
make runtests
make install
tar xvzf package/slang-2.1.0.tar.gz
cd libiconv-1.12/
./configure –prefix=/usr
で、インストールできたら
> # /sbin/ldconfig -v | grep slang
>???????? libslang.so.2 -> libslang.so.2.1.0
となっているはず。
そしたらMuttのインストール。
tar xvzf package/mutt-1.5.15.tar.gz
./configure \
–prefix=/usr \
–sysconfdir=/etc \
–enable-pop \
–enable-imap \
–with-sasl \
–with-slang
make
make install
インストールできたら /etc/Muttrc の中を
> # set folder=”~/Mail”
> set folder=”~/Maildir”
>
> # set mbox_type=mbox
> set mbox_type=Maildir
>
> # set spoolfile=””
> set spoolfile=”~/Maildir”
というように書き直す。
で、あとは mutt を起動すれば日本語をちゃんと表示します。