IlohaMail は、PHP ベースの Web メールクライアントで、動作が軽快で使いやすいらしい。ところが、IlohaMail をインストールするためだけに PHP をインストールしたにも関わらず、動作しない。なぜか認証に失敗してしまう。試行錯誤の途中、ひょんなことから問題が解決してしまった。しかし、原因と結果の直接的な結びつきはなく、気分的にはスッキリしないのであった。
IlohaMail.org は PHP4 ベースの Web メールクライアントで、メール受信には IMAP と POP3 プロトコルをサポートしている。MySQL をバックエンドとして選択することもできる。名前は、英語の「ABC」にあたる「いろは」からとっている。「はじめての」とか「基本の」などの意味である。「Iroha」でなく「Iloha」としたのは、恐らく英語では「ro」より「lo」の方が日本語の発音に近いためだろう (ローマ字で「r」とするのは、イタリア語の「r」が日本語の「ラ行」の音に近いからだと思われる)。作者の Ryo Chijiiwa さんはアメリカ在住の日系人。IlohaMail は日本語を含む数多くの言語をサポートしている。
ここでの環境は、Vine Linux 2.6、PHP 4.2.3、IlohaMail 0.8.13 である。
IlohaMail.org - Downloads からダウンロードし、展開してインストールする。PHP のプログラムソースなので、インストールといっても Web でアクセスできるディレクトリにコピーするだけである。インストールの仕方は、展開したディレクトリにある「INSTALL」にもあるが、「Manual」ディレクトリにある HTML 形式のドキュメントの方が詳しくて見やすい。
インストールして Apache を再起動し、ブラウザアクセスしてみると、上手く動作してくれない。
POP3 でアクセスすると、認証エラーとなる。/var/log/maillog には次のような出力となった。
/var/log/messages のログは次の通りである。
Vine Linux では、認証に PAM を使っていることが分かる。PAM 関係のコンフィグレーションファイルは /etc/pam.d にあり、関連モジュールは /lib/security 以下にある。POP3 関係のコンフィグレーションは pop と qpopper がある。qpopper を編集し、pam_pwdb.so を pam_unix.so に変えてみたが、同じように認証エラーとなった。ログには pam_unix がエラーを残していた。
念のため telnet を使って 110 番ポートでアクセスしてみると、何事もなく認証に成功する。
IMAP プロトコルでアクセスした場合も、認証に失敗する。/var/log/maillog には IMAP サービスが初期化されたことを示すログが出力されている。
対応する /var/log/messages のログは次の通り。
imapd デーモンが inetd デーモン経由で起動されていることが分かる。ここでも PAM_pwdb がエラーを残している。
PHP 経由だと失敗するのかと思い、trustBee - IMP日本語版 Q&A - を参考に imaptest.php というファイルを作って
と書いてアクセスすると、正しく認証されることが分かった。ホスト名は「localhost」でも構わない。POP3 でも同様に認証には成功した。POP3 の場合は、上記の「143/imap」を「110/pop3」に書き直すだけでよい。
PHP が原因ではないようだ。
情報を採るために、PHP のログを設定し、IlohaMail のログを設定した。IlohaMail はデフォルトでログを採らないようになっているが、これを「ログを採る」に変えたところ、いきなり動作するようになった。原因は PAM ではなかったのだ。
初めてのログイン時には、設定画面が表示される。時差を「9」に設定しておく。
IlohaMail/conf/conf.inc を編集し、次のように設定を変更する (デフォルトと違うもののみ)。
root になって、ログファイルを用意する。
Apache を再起動すると、問題なく認証されて IlohaMail が使えるようになった。原因は不明である。
IlohaMail が動作するようになったので、他のコンフィグレーションを行う。IlohaMail/conf/login.inc を編集し、デフォルトから以下を変更する。
最初の2行で、表示言語を日本語にして設定を表示しないようにしている。
$logout_url は相対パスでも指定可能で、ここでは親ディレクトリを指定している。IlohaMail の URL を http://nlogn.ath.cx/webmail/ にしているので、ログアウトすると http://nlogn.ath.cx/ になる。
便利なのは VDOMAIN_DETECT の設定で、[""] の中にバーチャルドメイン名、イコールの後にメールサーバ名を書く。これにより、http://nlogn.ath.cx/webmail/ でアクセスした場合と http://他のバーチャルドメイン名/webmail/ でアクセスした場合で、自動的にメールサーバを変えてくれるようになる。単に入力の手間が減るだけでなく、ドメイン名は送信時のメールアドレスにも反映されるので、大変便利である。このように1つの Apache で複数のバーチャルサーバを運用している場合は、/etc/httpd/conf/httpd.conf にエイリアス設定をしておくとよい。例えば次のように書いておく。
この設定により、http://バーチャルサーバ名/webmail/ という同じ形でのアクセスができ、しかもディレクトリに1つ1つシンボリックリンクを作る手間も省くことができる。
2005年4月9日追記: PHP 4.3.10 に更新しました (nlog(n): PHP 関連パッケージのインストール)。
Posted by n at 2004-08-12 19:20 | Edit | Comments (3) | Trackback(1)
Master Archive Index
Total Entry Count: 1957
自分もIlohaMailを試してみました。確かに軽くて便利でした。ところが自分の環境かどうかはわからないけど、受信はできても送信するたびに文字化けばっかりしてました。原因調べてみたりしました(作者にメールも出してみましたが回答なかった)が、結局分からず放置してしまいました(^^;。
Posted by: zRyu at August 14, 2004 01:22ちなみに、今はXOOPSのWEBMAILで代用してます。
こちらでは、文字化けなしで使えています。設定画面に「標準文字コード」という項目がありますが、これはブラウザに表示する文字コードで、メールには影響しないようです。メールを送って内容を見てみると、Subject が日本語の場合は MIME エンコードされていて、本文は ISO-2022-JP の文字セットになっています。メールの形式としては正しいエンコードになっています。これで文字化けしてしまうというのは不思議です。
Posted by: n at August 14, 2004 02:11XOOPS の Webmail は使いやすいですか?
>こちらでは、文字化けなしで使えています。
本当ですか?〜ん、自分の設定が悪かったかな・・・。XOOPSのWebmailは使いやすいですよ、でも今のところXOOP
で他のモジュールとか使っていないので態々XOOPSでメールを確認するのもちょっと違う気がしてきた・・・
文字化けがしないのであればもう一度トライしてみます。ilohaMailはたしかMySQLと連携取れるしね。
いや、貴重な情報ありがとうです。
Posted by: zRyu at August 17, 2004 18:07