オープンソースのWebメール、AtMail Open のインストール
AtMail Open は、商用版ウェブメールソフトのオープンソース版で、無償で利用できます。日本語に対応してそうなので試したいと言われ、インストールすることにしました。
さて、バージョンは 1.03 です。ちなみに日本語に対応しているのはメールの閲覧や作成だけで、ユーザインターフェースは日本語非対応です。とはいえ PHP で書かれたオープンソースなので、自分の手で日本語化することは可能だと思います。
ダウンロード
ダウンロードしたアーカイブをサーバ上で展開します。/var/www/html/atmailopen/ に配置します。ファイル・ディレクトリは、すべて apache ユーザで読み書きできる必要があります。
# wget http://atmail.org/download/atmailopen.tgz # tar xzvf atmailopen.tgz # mv atmailopen/ /var/www/html/ # chown apache:apache -R /var/www/html/atmailopen/
http://servername/atmailopen/ にアクセスすると、インストールウィザード画面になります。インストール要件がチェックされますので、ここで PHP のモジュールや設定の確認ができます。php.ini で upload_max_filesize と post_max_size を 16M 以上にしないとダメでした。
また、MySQL のデータベースを作成できる権限のあるアカウントが必要ですので、事前に作っておきます。今回は事前に空のデータベースも作成して、その DB にだけすべての権限を持つアカウントを作成しました。
# mysql -u root mysql< CREATE DATABASE atmail; Query OK, 1 row affected (0.01 sec) mysql< GRANT ALL PRIVILEGES ON atmail.* TO atmailuser@localhost IDENTIFIED BY "********"; Query OK, 0 rows affected (0.00 sec)
ちなみにデータベース名やユーザ名は推測できない名前にした方がよろしいです。
インストーラは英語ですが、手順どおりにすすめていけば、それほど難しくありません。
ログイン
ログインページにアクセスすると、IE8ではなぜか Windows Media Player Extension を実行しようとしているというメッセージが出ますが無視します。新しいメールの到着音を出すために必要なようです。
また、画面は入力項目が多くて戸惑いますが、メールサーバ名なども入力が必要です。これに関しては、html/login-light.html ファイルの HTML フォームを書き換えることで、固定の初期値を表示したり、サーバ名を非表示にできます。
<td align="left"><input name="MailServer" type="hidden" class="logininput" id="MailServer" value="mail.example.org"></td>
ログインできない
IMAP サーバと AtMail Open を同一のサーバにインストールすると、ログインできないという不具合があるようです。secure ログを見ると、dovecot が以下のようなエラーログを出しています。
dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser= rhost=172.16.0.100 dovecot-auth: pam_succeed_if(dovecot:auth): error retrieving information about user testuser@example.org
どうやら、”testuser” だけで dovecot にログインすべきところ “testuser@example.org” と@以降の文字列も付けたまま認証しようとして失敗しているようです。 Atmail User Community Forumの書き込みを参考に、libs/ IMAP_Client.php の 1697 行目に以下のコードを追加します。
function login($user, $pass) { list($user, $crap) = split("@", $user, 2); $this->user = $user;
この回避策で、同一サーバでもログインができるようになります。
アドレス帳に削除できないアドレスが大量に表示される
Address book (アドレス帳) には、初期状態で大量のメールアドレスが登録されていました、これらは “Delete Selected” しても残ったままです。
どうやら Open LDAP のアドレス帳? に登録されているものらしいです。ローカルの OpenLDAP (slapd) は停止していますが、どうやらリモートのサーバにデフォルトで接続しにいく仕様のようです。メールアドレスの補完機能でもこのネット上の LDAP アドレス帳が機能してしまいますので、操作ミスでメールを誤って送付してしまう可能性があり危険です。
これらは libs/Atmail/Config.php ファイルを修正して表示されないようにします。addressbook_ldap_entries と autocomplete_ldap_entries の値を 1 から0 に変更します。また、dap_server が “directory.washington.edu” となっていますが、これも消しておきましょう。もちろんローカルの LDAP サーバでアドレス帳を管理しているのあれば、それらを利用するよう設定できます。
所感
みやすくわかりやすい AJAX を使ったUI は評価できますが、日本語 UI に対応していないのがマイナスです。また、設定画面でエンコードを ISO-2022-JP にしても、作成したメールは UTF-8 でした。これなら SquirrelMail や RoundCubeの方がおすすめできますね。
はじめまして。atmailopenの設定方法を探していてたどり着きました。
受信までは出来たのですが、送信が出来ません。
smtp.phpをいじればいいのではないか、と思っているのですが、
サーバの知識がまったく無いので、四苦八苦しています。
ソフトバンクのサーバなので、ポートが587となのですが、
この辺りもsmtp.phpに書くのでしょうか。
ご教示いただけると幸いです。
ヨロシクお願いします。
コメント by watrix — 2009-07-14 11:46