Webメールtaka2TweetWWWサーバー上にGmailのようなWebメールシステムを構築できるSquirrelMailというWebアプリケーションソフトがあります。PHP上で動くソフトなのですが、WWWサーバのPHPを5.4にバージョンアップしたらSquirrelMailがまともに動かなくなったので、PHP5.4対応の修正を行いましたWebメールソフトとしては以前RoundCubeを紹介しましたが、SquirrelMailはそれより古い「元祖Webメールソフト」と言ってもいいぐらいの老舗サーバソフトです。英語圏発祥のソフトですが昔から日本語にも対応しており安定して使えます。PCで使う場合はRoundCubeの方が高機能で便利ですが、タブレットPCではSquirrelMailの方が軽くて安定しているので、私はこの2つを併用してます。まともに動かなくなってしまいました(日本語文字が全て消えてしまう)。PHP5.4でも動くような修正をおこないました。(ファイル一式)(ライセンスは、本家と同じくGPLv2に従います)原因SquirrelMailがPHP5.4でまともに動かない原因は以下の通りです。いう、HTML特有の文字を変換する関数があります。UTF-8に変更になりました。エンコーディングで出力します。表現された文字バイト列は、UTF-8として解釈すると不正な文字列であるということになってしまいます。不正な文字は破棄する仕様になっています。動かすと、日本語文字がまったく表示されない、ということになってしまいます。言語設定に基づいて文字変換を行うラッパー関数「sq_htmlspecialchars」を追加します。より、バージョン1.4.22以外のSquirrelMailをPHP5.4に対応させたり、既存インストール済のSquirrelMailシステムをPHP5.4に対応させることができます。下記修正はバージョンに依存しませんので、作業時点での最新版をダウンロードページを確認してください。システムをPHP5.4対応に修正する場合は、そのSquirrelMailディレクトリに移動してください。念のため、あらかじめ既存のSquirrelMailファイル群をバックアップしておくことをオススメします。*\([^\)]/sq_$&/'(修正ファイルが多岐に渡りますが、修正は単純な置換です。使えるようになります。02:35貴重かつ有用な知識をありがとうございました。先月サーバーを入れ替えてからSquirrelmailが不調で困っていました。ご教示にしたがって,phpファイルの修正を行って正常に動作するようになりました。squirrelmailでの送信がうまく行きません。03:13お世話になっております。パッチを当ててから受信は文字化けもなく順調なものの,送信がうまく行っておりませんでした。PHP5の設定のどこかを間違えていると思い,PHP5を再インストールしました。すると,Squirrelmailの送信はバッチリ!パーフェクトです。ありがとうございました。11:25先日FreeBSD9.1から10.0にアップグレードした際に,Squirrelmailも新規にインストールしなおしました。最新版は1.4.23ですが,日本語の問題を直してあるようです。パッチも当てず,そのまま正常に稼働しています。PHP5.4.16にインストールしました。日本語が表示されない現象が確認でき、この記事が参考になりました。plugins/compatibility/includes/1.5.2/global.phpに同名の関数があり、if(0)で囲んで無効化する必要がありました。1.4.23は知らなかったので試していません。コメントをキャンセルメールアドレスが公開されることはありません。