マックの趣味

SquirrelMail(WebMail)の構築

来週また中国行きます。そのホテルはWEBアクセスしかできないので、自分のメールを使用するためにWebMailを構築することにしました。Googleで探してみると、SquirrelMailというのがどうも有名のようです。
今回の構築にはPostfixで Cyrus IMAP + SquirrelMail(WebMail)を参考にしました。
整理すると、構築には
1.IMAPサーバー
2.PHPのインストール
3.SquirrelMailのインストール
4.Apache の設定

1.IMAPサーバーの構築
私の環境では Courier-IMAP をPOP3でメールサーバーに使用しているので、これにIMAPサーバーを追加しました。
Courier-IMAPをインストールしたときにすでに、courier-imap-imapd.shが rc.d フォルダにできているはずです。これを動作させるために、/etc/rc.conf に以下の行を追加します。

courier_imap_imapd_enable="YES"

そして、

#./rc.d/courier-imap-imapd.sh
とimapd を起動させます。
確認はこんな感じ
#ps -ax | grep imap
95753 p1- I 0:00.01 /usr/local/sbin/courierlogger -pid=/var/run/imapd.pid
95754 p1- I 0:00.07 /usr/local/libexec/courier-imap/couriertcpd -address=
613 con- I 0:03.19 /usr/local/libexec/courier-imap/couriertcpd -address=

2.PHP5のインストール
[svr-root]::pwd
/usr/ports/lang/php5

#make config
で、以下のように設定しました。APACHEはデフォルトで選択されていません。
これを忘れると、APACHEようのmoduleが作成されないので必ず選択してください。
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] APACHE Build Apache module
[ ] DEBUG Enable debug
[X] SUHOSIN Enable Suhosin protection system
[ ] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[X] MAILHEAD Enable mail header patch
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)

後は、
#make install

ここで一つ問題が出ました。
すでにインストールされているapache を削除しろと言ってきました。
ここでいったん今のapacheを削除します。
#./www/apacche22/make deinstall
そして再度
PHP5をインストールします。すると、apache1をインストールしようとするのであわててCTL-Cで止めました。
諦めて、もう一度 apache22 を再インストール。
#./www/apacche22/make reinstall
もう一度、PHP5のインストールに挑戦するとなぜか素直にインストール完了です。
理由はわからないけど、まずはよしとします。

PHPのインストール(Apache2.0 Linux編)
ここも参考しました。

3.SquirrelMailのインストール
これもportsから入れることにします。

[svr-root]::pwd
/usr/ports/mail/squirrelmail

普通に
make install

すると、
[svr-root]::pwd
/usr/local/www/squirrelmail

にフォルダができます。
このフォルダで
[svr-root]::./configure

Language preferences
1. Default Language : ja_JP
2. Default Charset : iso-2022-jp
3. Enable lossy encoding : false

Server Settings

General
-------
1. Domain : sample.com
2. Invert Time : false
3. Sendmail or SMTP : SMTP

A. Update IMAP Settings : localhost:143 (other)
B. Update SMTP Settings : localhost:25

の設定をします。

このままのパーミッションだとなぜか後でエラーが出るので、
今回はすべて、www.www にしました。

4.Apache の設定
httpd.conf に以下を追加します。

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


Alias /webmail/ "/usr/local/www/squirrelmail/"
<Directory /usr/local/www/squirrelmail>
DirectoryIndex index.php index.html
Allow from all
</Directory>

ちなみに、
LoadModule php5_module libexec/apache22/libphp5.so

は自動で入っているはず。

ここまでできたら、
apache22 を再起動します。

#./rc.d/apache22.sh restart

それでは
http://www.sample.com/webmail/
ちゃんと動いたかな?

送信サブジェクトの文字化け
日本語のサブジェクトが送信時に文字化けしていたのですが、
どうも、MIMEエンコードしていなようです。こんな感じ

X-Amavis-Alert: BAD HEADER Non-encoded 8-bit data (char A5 hex): Subject: 245320241274245270245=?ISO-202.

ためにし、前もってエンコードしてサブジェクトに書いてみると
ちゃんと受信側(Becky)でも読めます。
なんでエンコードしないんだろう。
で、本家のページにこんなもんを見つけました。

件名: 文字化け直りました
著者:
Date: Monday, 2006/03/27 - 17:35
日本語パッチは正しくあたっていました。
以下の部分を変更したらうまくいきました。
----------------------------------------------------------------
変更ファイル名:
/usr/local/www/squirrelmail/class/deliver/Deliver.class.php

以下の行(458行目)の内容を変更
変更前:
$header[] = 'Subject: '.encodeHeader($rfc822_header->subject) . $rn;

変更後:
$header[] = 'Subject: '.mb_convert_encoding($rfc822_header->subject,"JIS") . $rn;

まあ、これで治ったんだけど、生JISヘッダがちょっと気持ちわり~感じです。
しばらく様子見かな

でも、↑のコードでなんでエンコードしないんだろう???だれか教えて

ランキングに参加中、クリックをお願いします。

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「FreeBSD」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事