courier-imap
メールを(玄箱まで)送受信できるようになったら、PCで見れないと意味がないですよね?
いや、telnetとかftpで見るから良いって言うなら止めないけど・・・
まぁ、メールクライアントで見れたほうが便利。
ってことで、pop3/imap4鯖を作ります。
今回はcourier-imapを使ってみます!
「pop3/imap4」
maildir方式では選択肢が無さ過ぎです。
丁度、popとimapが両方使えるのがcourierしかなかったってだけ(調べた限りは)
まぁ、使えれば何でもいいような気がしますが・・・
ソースの修正が多い(単純だけど)のでがんばってください。
やること一覧 ・courier-authlibのインストール ・courier-imapのインストール ・ユーザーパスワードの設定: courier-imapのimap認証をUNIXパスワード切り離す courier-imapでimap接続のときにCRAM-MD5認証する! ・不具合修正:Thunderbirdのセッション不足
関連ページ ・postfix ・postfix with smtp auth ・openssl ・autoconf
その前に、libtoolを作成する。
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/GNU/libtool/libtool-1.5.26.tar.gz $ tar xvfz libtool-1.5.26.tar.gz $ cd libtool-1.5.26 $ ./configure --prefix=/usr $ make $ make check # make installインストールされるモノ(--prefix=/usr/local)=>libtool-1.5.26.txt
# groupadd -g 27 courier # useradd -g courier -u 27 -d /var/empty -s /bin/false courier # vipw または # vi /etc/passwd 変更点:! を * に書き換えるcourierシリーズの認証用デーモンであるauthlibをインストールする
$ wget https://sourceforge.net/projects/courier/files/authlib/0.66.1/courier-authlib-0.66.1.tar.bz2/download $ tar xvfj courier-authlib-0.66.1.tar.bz2 $ cd courier-authlib-0.66.1 $ ./configure --prefix=/opt/courier (警告メッセージ) ┃checking for expect... no ┃configure: WARNING: ----------------------------------------------------- ┃configure: WARNING: expect not found - will not be able to change passwds ┃configure: WARNING: in webmail ┃configure: WARNING: ----------------------------------------------------- 解説:expectが無いとwebmailからpasswdを変更できないらしい・・・ 使わないから良いや(ぼそ 参考:Expect $ cp Makefile Makefile.org $ sed -e 's,^LIBLTDL = ${top_build_prefix}libltdl/libltdlc.la,LIBLTDL = -lltdl,' Makefile.org >Makefile 注:そのままだとerrorがでてコンパイルできないのでMekefileを書き換える $ make $ make check # make install # make install-configure 注:再インストール時、install-configureは不要上記設定でインストールされるもの
/opt/courier/bin/courierauthconfig /opt/courier/etc/authlib/ /opt/courier/include/courier* /opt/courier/include/ltdl.h /opt/courier/lib/libltdl.* /opt/courier/lib/courier-authlib/ /opt/courier/libexec/courier-authlib/ /opt/courier/man/??? /opt/courier/sbin/auth* /opt/courier/sbin/courierlogger /opt/courier/sbin/*userdb* /opt/courier/var/spool/authdaemonおまじない
# strip -p /opt/courier/bin/* # strip -p /opt/courier/sbin/*使う人が居ないのにデーモンが5つも立ち上がるのはうざいから修正
# vi /opt/courier/etc/authlib/authdaemonrc
(修正)
┃daemons=1
変更点:立ち上がるデーモンの数を5から1に減少(お勧めはしませんw)
「webmail」
事前準備その1:OpenSSLをインストール
暗号通信(POP over SSL)を利用する場合には事前にOpenSSLをインストールする必要がある。
手順は別項:opensslを参照。
事前準備その2:autoconfのアップデート
courier-imapのmake中になぜかautoconfのバージョンが低いと文句をたれるたので、
アップデートしてみる。
必要ないこともあるかも知れないので別項:autoconfを参照。
courier-imap-4.4.1.tar.bz2を探してくる。
Courier-IMAP
で、ユーザーのホームディレクトリにFFFTPで送る。
例のあれ
$ wget http://kuro.crow2.net/server/data/courier-imap-4.4.1.tar.bz2 $ tar xvfj courier-imap-4.4.1.tar.bz2 $ cd courier-imap-4.4.1ソースファイルの修正
(修正概要) #include されている courierauth.h と courierauthsasl.h と courierauthdebug.h を "/opt/courier/include/courier*.h" のように"でくくった絶対パスに修正する。 パッチを作ったので適応すれば良い $ wget http://kuro.crow2.net/server/data/courier-imap.patch $ patch -p 2 <./courier-imap.patch 注:4.15ベースのpatch fileなのでHunkするが、問題無い また、4.15で使う場合は下記のコマンドになる $ patch -p 1 <./courier-imap.patch (修正部分) [ファイル名]:[行数] imap/authenticate_auth.c:16-18 imap/imapd.c:53,87 imap/imaplogin.c:35,36 imap/mailboxlist.c:68 imap/pop3dserver.c:58 imap/pop3login.c:25-27 imap/proxy.c:33 $ export COURIERAUTHCONFIG=/opt/courier/bin/courierauthconfig 注:courierauthconfigの場所を環境変数に出力する $ ./configure --prefix=/opt/courier --enable-unicode=iso-2022-jp \ --without-authmysql --without-authldap --without-authuserdb
option | 説明など |
--enable-unicode=iso-2022-jp | 日本語(iso-2022-jp)を有効にする |
--without-auth* | (*に該当する)認証システムを使わない |
option | 説明など |
install-strip | stripしてインストールする? |
install-configure | 設定ファイルをインストールする |
# chmod 600 /opt/courier/etc/authlib/userdb 注:再インストール時に必要(?)「IP v6」
ユーザー情報の登録(正しいユーザー名、ホームディレクトリ、maildir、UID/GIDを設定する)
# /opt/courier/sbin/userdb [username] set home=[userdir] mail=[userdir]/Maildir \ uid=`id -u [username]` gid=`id -g [username]`パスワード入力(imapとpop3のパスワードは独立しています。それぞれ設定してください)
# /opt/courier/sbin/userdbpw | /opt/courier/sbin/userdb [username] set imappw # /opt/courier/sbin/userdbpw | /opt/courier/sbin/userdb [username] set pop3pwデータベース化
# /opt/courier/sbin/makeuserdb
注:変更したら必ず実行すること(最後にまとめてで良いので)
起動スクリプトを書いて/etc/init.dに置く(アクセス権も変更)# chmod 755 /etc/init.d/courierテスト(start/restart/stopがエラーなく動くか?)
# /etc/init.d/courier start # /etc/init.d/courier restart # /etc/init.d/courier stop自動起動設定
# ln -s /etc/init.d/courier /etc/rc.d/rc2.d/S35courier # ln -s /etc/init.d/courier /etc/rc.d/rc0.d/K35courier # ln -s /etc/init.d/courier /etc/rc.d/rc6.d/K35courier再起動テスト
# shutdown -r nowやるべきこと(pop3のテスト)
雷鳥こと、Thunderbird(サンダーバード)はフリーで使える高機能なメーラーだ。
まぁ、癖があるけど・・・(を
これをデフォルト設定のcourier-imapで使うと「セッションが足りねぇよヽ(`Д´)ノ」と文句を言われる。
雷鳥の要求するセッション数が5つとなっているのに対して、
courier-imapのデフォルトセッション数が4となっているためだ。
で、どっちを修正するか・・・
まぁ、courier-imapでしょうね(クライアントは何台あるかわからないし)
# vi /opt/courier/etc/imapd
(修正)
┃MAXPERIP=5
んで、courierを再起動。# /etc/init.d/courier restart以上。
戻るなら押せ!