SquirrelMail
トップページのリスがかわいいSquirrelMailです。
でも。リスメールとかRisuMailは商標に引っかかりますので注意♪
参考:「リスメール」の名称の使用の制約について
あぁ、これでここも訴えられるのね・・・(つд∩) ウエーン (つд∩) ウエーン (つд・ ) チラ (つд∩) ウエーン
「リスメール」
結構、使ってる人居ますし、squirrelmailをイメージしたときに思いつく名前ですよね。
まぁ、本家の中の人が使うなって言っているのだから使わないほうがいいでしょう。
ってことで、別の名前を考えてみる・・・
webmail・・・cyrusのウェブメールじゃんよΣ(゚Д゚lll)
りすめ〜る・・・波ダッシュがポイント。でも、どこかのメーリングリストの名前だし煤i ̄△ ̄;)
ナッツメール・・・SquirrelMail webmail for nutsより。いまいちインパクトが・・・(´・ω・`)
まぁ、適当に(投げた)
やること一覧 ・前提条件 ・SquirrelMailのインストール ・プラグインとか ・添付ファイルの容量拡大 ・添付ファイル名の文字化け対策
関連ページ ・postfix ・postfix with smtp auth ・apache2 ・php4 ・ローカルIPがメールヘッダに漏れる
SquirrelMailはphpプログラムであり、動作にはphp4.x系が必要となる(php5系では動かない)
正常にhttp鯖が動作すること。
>>参考:apache2
http鯖上で正常にPHPが動作すること。
(php4.4.x系の場合、mb_send_mail()のバグが修正されていること)
>>参考:php4
httpd.confの修正
# vi /opt/apache2/conf/httpd.conf
(追加)
┃DirectoryIndex index.html index.html.var index.php
バーチャルホストを追加# vi /opt/apache2/conf/vhost.conf (追加) ┃<VirtualHost *> ┃ ServerAdmin [your@mail.add] ┃ DocumentRoot /home/www/webmail ┃ ServerName [yourhost.yourdomain] ┃ <Directory "/home/www/webmail"> ┃ Options FollowSymLinks Includes ┃ AllowOverride None ┃ Order allow,deny ┃ Allow from all ┃ </Directory> ┃ ErrorLog logs/webmail-error_log ┃ CustomLog logs/webmail-access_log combined env=!nolog ┃</VirtualHost> 注:DocumentRootはまだ存在しないのでhttpdを再起動するとエラーになる「php」
まずはSquirrelMail本体のインストール
squirrelmail-1.4.8.tar.gzとall_locales-1.4.8-20060811.tar.gzを探してくる。
SquirrelMail - Webmail for Nuts!
$ tar xvfz squirrelmail-1.4.8.tar.gz # mkdir [-p] /home/www/webmail
option | 説明など |
-p | 指定したパスの途中のディレクトリが存在しない場合、 存在しない中間ディレクトリも新規に作成する |
option | 説明など |
-p | ファイルの情報を保持したままコピーする |
-R | 再帰的に処理する これを使うとディレクトリごとコピーができる |
$ mkdir temp $ cd temp $ tar xvfz ../all_locales-1.4.8-20060811.tar.gz $ ./install 注:squirrelmailをインストールした場所を聞かれるので正確に答える 注:面倒くさい上書き確認があるので全部「y」で(を 注:本気で面倒臭いので、上書きを確認しないバージョン(取り扱い注意)を 利用することも可能 上書きを確認しないinstall.sh(install.tar.gz) md5sum crc32:79166340おまじない
# chown -R apache2:httpd /home/www/webmail/data初期設定
$ cd /home/www/webmail $ ./configure 2. Server Settings>1. Domain を自分のドメインに変更(@より右の部分になる) 10. Languages>1. Default Language をja_JPに変更 10. Languages>2. Default Charset をiso-2022-jpに変更 (変更が終わったら) S Save data で情報を保存して Q Quit で終了する 注:数字+改行とアルファベット+改行で移動していくimap鯖とsmtp鯖がwww鯖と一緒じゃない場合
$ cd /home/www/webmail $ ./configure 2. Server Settings A. Update IMAP Settings>4. IMAP Server を使うimap鯖に変更 B. Update SMTP Settings>4. SMTP Server を使うsmtp鯖に変更 (変更が終わったら) S Save data で情報を保存して Q Quit で終了する 注:数字+改行とアルファベット+改行で移動していく初期設定のおまじない
$ cd /home/www/webmail
# ./configure
4. General Options>11. Allow server-side sortingをy [true]に変更
注:メールのリスト作成をphpでなく、鯖側で行うようにする呪文
まぁ、高速化ですね
参考:Made by Susutawari - Memos
httpdを再起動する# /etc/init.d/httpd restartアクセスして、ログインできればOK
SquirrelMailはプラグインを追加することで機能を拡張することができる。
まぁ、玄箱の処理能力で拡張できるものって言うと限度があるけど・・・
SquirrelMailに付属しているもので使えるものをチョイスしてみる。
プラグインの追加
# cd /home/www/webmail # ./configure 8. Plugins 使用可能なプラグイン一覧が表示される (上が現在使っているもの、下が現在使っていないもの) 数字は重複していないので移動したい番号を入力して有効無効を決めていく 今回は mail_fetch(pop受信機能) delete_move_next(簡単削除機能) を有効にし squirrelspell(スペルチェッカ) spamcop(spamの報告ツール) を無効にした (変更が終わったら) S Save data で情報を保存して Q Quit で終了するプラグインの設定
mail_fetchの場合 オプション>POPでメールを取り込む>サーバー登録 実行は上のPOP3受信をクリックするか、設定のタイミングで delete_move_nextの場合 オプション>表示オプション>表示位置設定(チェックボックス) デフォルトで下に表示される 有効になってるプラグイン一覧 ┃1. translate ┃2. filters ┃3. mail_fetch ┃4. delete_move_nextどうやらfiltersについているspamフィルタは使えないらしい・・・
デフォルトでは2MBのファイルを添付できる。
まぁ、普通に使う分には十分な量だと思うけど・・・
そうではないことがあるかもしれないので、もっと大きな添付ファイルを送れるようにする。
SquirrelMailの添付ファイル容量を20MBまで許容する
といっても、SquirrelMailを弄るわけでなくてphpを弄る(phpのアップロード量の制限だから)
# find / -name php.ini-dist 注:phpのソースツリーの中にあるはず・・・ # cp [見つかったphp.ini-distまでのパス] /opt/php/lib/php.ini # vi /opt/php/lib/php.ini (変更) ┃upload_max_filesize = 20M ┃post_max_size = 20M 注:phpがアップロードできるファイル容量を20MBに変更 # vi /opt/apache2/conf/httpd.conf (追加) ┃<Files *.php> ┃LimitRequestBody 52428800 ┃</Files> 注:apacheでのphpの転送制限を50MBに変更(1024*1024*?MBで計算) 注:SquirrelMail自体のphpも転送量に含むので 添付ファイル以上の値を指定する 注:AddType application/x-httpd-php の近くに書くとわかりやすいかもapacheの再起動
# /etc/init.d/httpd restartSquirrelMailのメッセージ作成で添付ファイルの脇に(max. 20 M)があるか確認
日本語の添付ファイルをダウンロードしようとすると、保存ダイアログの名前のところが文字化けする。
いろいろ面倒臭いので修正する。
文字化けの原因は2つ。
1つは添付ファイル名(日本語)のデコード方式がSJISとなっていること。
これは以前のWin(9x系)ならばよいのだが、
現在主流のWinXPなどのNT系ではUTF-8という文字コードを内部的に使用しているらしいので・・・
もう1つはユーザーエージェント(以下、UA)でブラウザを(OSも?)判定していること。
UAを弄っている人で、中途半端にUAをデフォルトに似せている場合、(私のように)問題になる。
対策
1.エンコード方式の修正
functions/i18n.php $ret = mb_convert_encoding($ret, 'SJIS', 'AUTO'); の'SJIS'を'UTF-8'に変更する。 注:squirrelmail-1.4.8p2以降ではwin-macの分岐処理自体を削除しています(を 注:元々、分岐処理自体が無効との話もあります2.UAの判定を(甘くする)修正
functions/mime.php if (strstr($HTTP_USER_AGENT, 'compatible; MSIE ') !== false && のMSIEのあとの半角スペースを削除。 if (preg_match('/compatible; MSIE ([0-9]+)/', $HTTP_USER_AGENT, $match) && のMSIE ([0-9]+)をMSIE\s?([0-9]+)に変更。注:p2以降ではwin-macの分岐処理がなくなったので必要ないかも・・・注:元々、分岐処理自体が無効とのことなので、必要でしたw squirrelmail-1.4.8p3以外では実装されています もちろん、UAを弄っていない人は不要です
まぁ、面倒なのでパッチを利用する。
class/deliver/Deliver.class.php class/mime/Rfc822Header.class.php functions/date.php functions/i18n.php functions/imap_messages.php functions/imap_search.php functions/mime.php functions/url_parser.php src/compose.php src/printer_friendly_bottom.php src/search.php src/view_text.php
パッチ実施例 $ cd /home/www # cp -pR webmail webmail.backup $ cd webmail $ patch -p0 <~/squirrelmail-1.4.8p3.objsquirrelmail-1.4.8用修正パッチ2(squirrelmail-1.4.8p2.tar.gz) md5sum crc32:C264D6AB
$ patch -p0 <i18n.php.obj $ patch -p0 <mime.php.obj 注:特に理由がなければ最新のパッチを利用してください 最新とは:バージョンが一致しており、p?の大きいもの上記(p1の)修正では、「虹3枚」のようなサブジェクト名/ファイル名において、
戻るなら押せ!