今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

Courier-IMAPのインストールと設定

2005年2月13日 掲載
2006年6月14日 改訂

 Postfixの設定は終わったが、Vine LinuxではPOPサーバーが標準ではインストールされないので、このままではサーバーにメールが届いてもパソコンに取り込むことができない。POPサーバーとしてはqpopperが有名だが、ここではIMAPにも対応したCourier-IMAPを使うことにする。

Courier-IMAPのインストール

 Courier-IMAPをインストールするにはapt-getコマンドを使う。
 ただし、Courier-IMAPのインストールに必要なパッケージである「courier-authlib」がなぜか「Vine Plus」に含まれていない。そのため、ただ「apt-get install courier-imap」と実行したのでは「いくつかのパッケージをインストールすることができません」というエラーが出てしまう。aptコマンドの設定ファイルである「/etc/apt/sources.list」を編集し、plusだけでなく、extraのカテゴリーも検索とダウンロードの対象に含めるように設定を変更する必要がある。viで「/etc/apt/sources.list」を開き、太字の部分を追加しよう。
 ちなみにcourier-authlibは認証を行うサービスである。このパッケージをインストールしておかないとCourier-IMAPの本体が動いていてもPOP/IMAPサーバーにログインできない。

##
## Vine Linux 3.1
##  標準では extras カテゴリは除外されています。extras カテゴリ内のパッケージ
##  が必要な場合はコンポーネントリストに "extras" を追加してください。
# (masters)
rpm     [vine] http://updates.vinelinux.org/apt 3.1/$(ARCH) main devel
 plus updates extras
rpm-src [vine] http://updates.vinelinux.org/apt 3.1/$(ARCH) main devel
 plus updates extras

 設定を変更したらapt-getコマンドでCourier-IMAPをインストールする。コマンドラインで「apt-get install courier-imap」と入力すれば、あとは自動でインストールが行われる。

# apt-get install courier-imap
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下の追加パッケージがインストールされます:
  courier-authlib expect tcl thread tk
以下のパッケージが新たにインストールされます:
  courier-authlib courier-imap expect tcl thread tk
アップグレード: 0 個, 新規インストール: 6 個, 削除: 0 個, 保留: 14 個
5456kB のアーカイブを取得する必要があります。
展開後に 13.7MB のディスク容量が追加消費されます。
続行しますか? [Y/n]y
取得:1 http://updates.vinelinux.org 3.1/i386/main tcl 8.4.6-0vl1 [2607kB]
取得:2 http://updates.vinelinux.org 3.1/i386/main tk 8.4.6-0vl1 [1587kB]
取得:3 http://updates.vinelinux.org 3.1/i386/plus thread 2.5.2-0vl2 [49.5kB]
取得:4 http://updates.vinelinux.org 3.1/i386/plus expect 5.39.0-95vl2 [372kB]
取得:5 http://updates.vinelinux.org 3.1/i386/extras courier-authlib 0.53-0vl1 [150kB]
取得:6 http://updates.vinelinux.org 3.1/i386/plus courier-imap 4.0.1-0vl2 [691kB]
5456kB を 2s 秒で取得しました (1825kB/s)
変更を適用しています...
Preparing...                ########################################### [100%]
   1:tcl                    ########################################### [ 16%]
   2:tk                     ########################################### [ 33%]
   3:thread                 ########################################### [ 50%]
   4:expect                 ########################################### [ 66%]
   5:courier-authlib        ########################################### [ 83%]
   6:courier-imap           ########################################### [100%]
完了
#

 Courier-IMAPが自動起動するようにインストール時に設定されるが、念のためにchkconfigコマンドで確認しておこう。もし「courier-imap」「courier-authlib」が「off」になっていたら、「chkconfig courier-imap on」「chkconfig courier-authlib on」で追加する。
 「courier-imap」「courier-authlib」の両方が「on」になっていないと、サーバーを再起動したときにCourier-IMAPが自動起動しない。パソコンのメールソフトからメールサーバーにアクセスしてもエラーが出るだけだ。

# chkconfig --list
httpd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
proftpd         0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
courier-authlib 0:off   1:off   2:on    3:on    4:on    5:on    6:off ←ランラベル2〜5が「on」
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
courier-imap    0:off   1:off   2:on    3:on    4:on    5:on    6:off ←ランラベル2〜5が「on」
#

メールボックスの準備

 Courier-IMAPはMaildir形式のメールボックスを使う。Postfixでは標準でMailbox形式になっているため、このページで設定したように「/etc/postfix/main.cf」の中で「home_mailbox = Maildir/」と指定しておかなければならない。設定を変更したあとは、かならず「/etc/rc.d/init.d/postfix restart」でPostfixを再起動しておく。
 ちなみにMailbox形式とは/var/spool/mailディレクトリの中にユーザー名のファイルを作成し、そこにメールを保存するもの。ひとりのユーザーがひとつのファイルであり、何百通のメールを受け取ってもひとつのファイルに格納される。このファイルが壊れてしまうとすべてのメールが消えてしまう。それに対してMaildir方式ではユーザーのホームディレクトリの中にMaildirディレクトリを作成し(/home/××/Maildir)、そこにメールを保存していく。一通のメールがひとつのファイルになるので障害に強い。

 Postfixの設定を変更するだけでなく、受信したメールを保存するディレクトリを作成しなければならない。Maildirディレクトリの中には「cur」「new」「tmp」という3つのディレクトリを作るのだが、手動でやるのは面倒なので専用のmaildirmakeコマンドを使う。メールを受信するユーザーとしてログインし、自分のホームディレクトリで次のコマンドを実行しよう。

$ cd ~ ホームディレクトリに移動する
$ /usr/sbin/maildirmake Maildir Maildirを作成する

 これでMaildirディレクトリが作成された。しかし、ユーザーごとにMaildirディレクトリを作成するのは面倒なもの。「/etc/skel」ディレクトリにMaildirディレクトリを作成しておけば、次から新しいユーザーを作成すると同時にホームディレクトリにMaildirディレクトリが作成される。/etc/skelディレクトリの中身は、新規ユーザーを作成するときにそのホームディレクトリへコピーされるのだ。スーパーユーザーで次のコマンドを実行する。

# /usr/sbin/maildirmake /etc/skel/Maildir

メールアカウントの作成

 Postfixの標準設定ではLinuxのユーザーがそのままPostfixのユーザーとなる。つまり、作成したユーザーがあれば、そのログイン名がそのままメールアカウントになる。たとえば、jitaku-server.netドメインでuserという名前のユーザーがいれば、user@jitaku-server.netというメールアドレスになるわけだ。新たにユーザーを作成したときはuseraddコマンドを使う。
 メールしか使わず、Linuxにログインしないというユーザーの場合は、ユーザーを作成するときに次のように指定する。こうすればLinuxにログインできなくなるため、安全性を高めることができる。

useradd -s /sbin/nologin ×× ××はユーザー名

Courier-IMAPの起動

 Courier-IMAPを起動するには次のコマンドを実行する。「courier-imap」「courier-authlib」の両方のサービスを起動するところに注意してほしい。courier-authlibは認証を行うためのサービスだ。
 また、psコマンドで正常に起動したかもチェックしよう。

# service courier-imap start
Starting Courier-IMAP server: imap generating-SSL-certificate... imap-ssl pop3 g
enerating-SSL-certificate... pop3-ssl
# service courier-authlib start
Starting Courier authentication services: authdaemond
# ps ax | grep courier-imap
 9298 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
 9316 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
 9323 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
 9340 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
25707 pts/0    S      0:00 grep courier-imap
# ps ax | grep courier-authlib
  511 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
  552 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  553 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  554 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  555 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  556 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
25711 pts/0    S      0:00 grep courier-authlib
#

 Courier-IMAPの設定ファイルは/etc/courier-imapディレクトリの中にあるが、通常の使い方では特に設定を行う必要はない。
 これでメールを受信する準備も整った。プロバイダのSMTPサーバーから自分のメールアドレスにメールを送ってみて、正しく受信できるかを確認しよう。

メール受信のトラブルシューティング

 外部から送信したメールを受信できないときは、まず設定ファイルに誤りがないかを確認しよう。次にPostfixとCourier-IMAP(courier-imapとcourier-authlibの両方)が起動しているかをpsコマンドで確認する。psコマンドの結果をgrepに渡して、必要な行だけにしぼりこむ。

# ps ax | grep postfix
 9133 ?        S      0:00 /usr/lib/postfix/master こんな行があれば正常
25703 pts/0    S      0:00 grep postfix
# ps ax | grep courier-imap
 9298 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std こんな行があれば正常
 9316 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
 9323 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
 9340 ?        S      0:00 /usr/libexec/courier-imap/couriertcpd -address=0 -std
25707 pts/0    S      0:00 grep courier-imap
# ps ax | grep courier-authlib
  511 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond こんな行があれば正常
  552 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  553 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  554 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  555 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
  556 ?        S      0:02 /usr/libexec/courier-authlib/authdaemond
25711 pts/0    S      0:00 grep courier-authlib
#

 もしPostfixやCourier-IMAPが起動していないと次のような表示になる。「service postfix start」「service courier-imap start」「service courier-authlib start」などと入力して、それぞれのサービスを起動する。また、上のインストールの手順のようにchkconfigコマンドを使って、courier-imapやcourier-authlibが自動起動するように設定されているかも確認しておこう。

# ps ax | grep postfix
25703 pts/0    S      0:00 grep postfix Postfixが起動していない
# ps ax | grep courier-imap
25707 pts/0    S      0:00 grep courier-imap courier-imapが起動していない
# ps ax | grep courier-authlib
25711 pts/0    S      0:00 grep courier-authlib courier-authlibが起動していない
#

 また、ルーターのポートが空いているかも確認する。内部から確認することはできないので、外部からポートをスキャンするサービスを活用しよう。このページで紹介しているように、ブラウザで 「Sygate Online Services」にアクセスして「Scan Now」ボタンをクリックする。そこで「SMTP Mail Server Found」と表示されれば設定に問題はない。

 それでも受信できないときは、DDNSサービスの設定に誤りがないかチェックする。メールを受信するにはMXレコードの設定が必要だ。MyDNS.JPの場合は「DOMAIN INFO」のページで「MXレコード」に「*」と入力しておく。


 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。