winmail.dat

Winユーザからの添付書類がwinmail.dat となってしまうのが時々ある。

原因はすでによく知られていて、Win のOutlook のデフォルトの設定が添付ファイルをリッチテキストにしてしまうからだ。この形式(TNEF file)をOutlook以外のメールソフトが理解できないからだ。

要するにMicrosoft が悪い。デフォルトでプレーンテキストで送付するようにしておけば問題がないのだ。送付者側が受取人毎に設定できるようにしておけばいいのだ。実際には逆でデフォルトでリッチテキスト、受取人毎にプレーンテキストに設定できるとなっている。

受信者毎に設定するといっても、受信者はいつも同じPCでメールを読む訳じゃない。現在では、外出先ではMac、オフィスではWndowsあるいはその逆、また外出先ではタブレットかスマホかもしれない。だから受取人別に設定するというのは現実的でない。どのプラットフォーム、メールソフトでも問題ないとすべきだ。

htmlメールもやめるべきだ。送り主は強調したいから赤文字、太文字としたいかもしれないが、受け取る方はそのメールの重要度は、送信者と異なるからだ。Outlookのhtmlメールはデフォルトのフォントが小さくMacユーザには読みにくいことがある。

この現象が、毎回必ずなるのならいいのだが、何故か、ときどきなんだよね。

送信側は Fix it をダウンロード20130826fixitして実行すればいい、あるいはレジストリを書き換えればいいようだ。確認してないし確認もしたくない。

受信者側は送信者に文句を言っても、送信者が理解できそうにない、送信者を説得できそうにない、送信者にそのようなことを言うのが恐れ多い、面倒だから送信者に言いたくない、何回文句をつけてもやってくれない場合、自分で対応する。こっちのほうが簡単だ。そのうち、他の誰かが送信者に文句を言うだろう。

Win の場合 winmail opener 20130826winmail=openweをダウンロードして使う。

Macの場合は TNEF’s Enough 20130826TNEF7sEnoughをダウンロードして使う。

ownCloud その2

ownCloud

フォルダはアップロードできない。単一ファイルしか操作できない。一昔前のFTPソフトと同じだ。

同一名のフォルダを作成し、個別にファイルをアップロードするしかない。

フォルダのダウンロードもできない。ただし、管理者権限で「メニュー」の「管理者」から

20130823owncloud-zip

 

「ZIP形式のダウンロードを有効にする」設定すると、ダウンロード時に自動的にZIPに圧縮してダウンロードされる。

0B とあるのは圧縮容量の制限がないということだ。

Macinosh からアップロードしたファイル名が日本語のファイルがフォルダにあり、フォルダ毎ダウンロードするとき、圧縮の過程で日本語は文字化けしてしまう。Mac のほうでZIP圧縮してからアップロードするしかない。Mac Zipper がいいかも。

Macからアップロードすると、ファイルのアイコンがアップロード中の回転アイコンのまま止まらないことがある。Win でも同じなのかは確認していない。一度、上のフォルダとかに戻ってみる。ファイル容量が小さいときに生じる。ちゃんとアップロードされている。ファイル容量が大きいと右上にプログレスバーがでてくる。こちらは問題ない。

 

 

ownCloud

このサーバ、Moutain Lion Server (10.8.4)を使ってファイルを、どこからでもアップロード・ダウンロード出来るようにする。つまりCloudを作るのだ。「無料でいくらでもあるじゃん」と言うなよな。自分自身のCloudを持つのがいいのだ。

管理者のように、働く場所が複数のとき便利だ。TeamViewerのファイル転送は不安定なときがあるからな。

ownCloud をインストールしてみた。ownCloud Enterprise Edition 5.0.9だ。できたので、利用したい関係者は管理者まで連絡してちょうだい。それぞれのプラットフォーム専用のアプリをインストールすれば同期をとることもできるようだ。

https://owncloud.com/download からownCloud Enterprise Server Editionをダウンロードする。ユーザ名、メールアドレスを登録すると、メールが送られてくるのでメールにしたがってhttps://owncloud.com/downloadにアクセスして落とす。

サーバ用のアプリをダウンロードし解凍するとowncloud というフォルダになる。このフォルダ全部を
/library/server/web/data/sites/default
に移動し、

sh-3.2# chown -R www:www owncloud

とownerをwwwに変更しておく。

phpMyAdmin でデータベースを作る。

データベース名:owncloud
ユーザ:owncloud
パスワード:xxxxxxxxxxxx
ホスト:localhost
特権はすべて
照合順序:utf8_unicode_ci

である

そんでもって、http://exam.com/owncloud/ にアクセスして詳細設定を開いて

20130821owncloud

 

を入力する。この絵では管理者をowncloud にしたがadmin とかのほうがいい。

「セットアップを完了します」をクリックしてできあがり。

再度、http://example.com/owncloud/ にアクセスし、owncloudの管理者の名前とパスワードを入力してログインすると、ownCloudへようこそ の画面がでる。

3つのボタンがあるが、これはownCloud のダウンロードのページにあるのと同じで、端末がWin、Mac、Linux、Android、iPhone であればそれぞれ同期を取るアプリをダウンロードするページにいきますよ ということだ。だから右上の × をクリックして閉じて良い。同期が取れるのかは確認していないができるんだろ、きっと。

管理者でログインすると右上に管理者名があるからその右の三角をクリックしてメニューをプルダウンすればユーザを加えることができる。もちろん、加えるユーザをadminグループに入れてはいけない。

20130821owndloud_admin_mode

各ユーザは自分のdirectoryを持つことになるので、その中で新規のフォルダを作成することができる。アップロードは端末のファイルをドラッグドロップすればいい。

最大容量はデフォルトで512MB となっている。これを変更するためには、管理者でログインして、メニューの管理者を開いて設定する。しかしそれだけではだめで、
/library/server/web/data/sites/default/owncloud/.htaccess

php_value upload_max_filesize 512M
php_value post_max_size 512M
php_value memory_limit 512M

php_value upload_max_filesize 4G  //4Gに変更
php_value post_max_size 4G  //4Gに変更
php_value memory_limit -1  //-1に変更
php_value max_execution_time -1  //追加
php_value max_input_time -1  //追加

と変更する必要がある。未確認だ。だいたい512MBの容量のファイルをアップロード/ダウンロードするのは環境によって、えらい時間がかかるにちがいない。

でも16Gに増やしておいた。誰にも制限されないのが自分自身が持つサーバなんだからな。

収容場所を増やすとゴミが増えるだけなのはパソコンだけの話ではない。そうだろ?棚を作ればすぐいっぱいになって捨てることはしないだろ?クローゼットだって、でかければ、もはや着る事の無い服がぶらさがっていることになるだけだ。

でも、例えばlocalのデスクトップを丸ごとアップして、同期を取るようなことにしておけば、最初は大変だが、あとで楽になるかもしれない。

多くの場合、作業中のファイルはデスクトップに置く。作業が一段落したら書類とかマイドキュメントに整理/移動することになる。作業中のファイルを同期するためにはデスクトップをownCloudに置き、同期アプリを使うことになるが、現実的ではないだろうな。デスクトップだけでも35GB、書類も46GB使っている。HDが安くなってどんどん肥大化して、いらないものまでともかく積んでおくからだ。

だからといって作業中のファイルを専用フォルダに納めてから作業するなんてことやってられないしな。ときどきデスクトップを綺麗に片付けるだけだからな。

ownCloud は使い道があるだろうか?ま、いまのところサーバのHDに余裕があるから、使えるよ ということにしておくか。グループを作りshare フォルダを公開すれば特定のグループ所属のユーザにファイルを分配することもできるが、グループのメンバーを作ったり管理するのが面倒だし….

昔、シアトルに留学することになった大学院卒業生に、こちらの研究室とでファイルの交換をするのでなにか共用directoryを作ってくれと頼まれたことがあった。当時はHD容量も少なかったので、外付けHDを購入するのならという条件で作成してあげた。その結果、当の大学院卒業生は、日本にいる家族にTV録画をパソコンで見えるように変換する方法とアップロードする方法を教えて、シアトルで日本のTVドラマを楽しんでいたのだ。シアトル在住の日本人と一緒に紅白歌合戦を楽しんでいたのだ。なんて奴だ。奴といっても女だ。

甲子園も終盤ですな

花巻東の2塁走者がキャッチャーのサインを見て、打者に合図をしたことが、アンフェアでけしからんということになっているようだ。

ピッチャーが1塁に牽制球を投げ、一塁手が牽制球を取り損ねたような動作をして、1塁ランナーが2塁に向かって走り始めたとき、1塁手はボールを保持しているのでアウトにできる。このような動作も禁止らしい。

なにがフェアでなにがアンフェアかの線引きは難しいところがあるが、上記の2つは、アンフェアでもなんでもない。フェイクを仕掛けてだます行為がアンフェアとは限らない。そんなのは勝負事では当然の行為だ。サインは見破られないようにするのが当然で、見破られた方が悪い。

キャッチャーだって、本当は外角へ投げろというところを、打者の内角でキャッチャーミットをポンポン叩く動作を行っている。これだってフィエクだろ?これは認められているらしい。

極端に言えば、ストレートを投げる振りしてカーブを投げるのだってフェイクだ。勝負事でだまし合いが何故いけない。ポーカーフェイスがいけないことになりかねない。

サッカーで切り返してボールを蹴るのは当たり前だ。これだってフェイクだ。ペナルティキックでは普通はキッカーの体重を支える足のつま先がボールを飛ばす方向を向く。ゴールキーパーはキッカーの足のつま先を見てボールの方向を判断する。だから、プロはこれの逆を行う。キッカーのつま先がキーパーから見えないようにするとキーパーがボールを止める確立が低くなる。プロのキーパーは逆もあり得ることを十分承知している。こういうやり取りが面白いところだろうが。

これを試験に出すぞといって、出さない。教師に許されるフェイクだ。学生と教師の間の虚々実々の駆け引きだ。といっても、あっちの学生は駆け引きができるような学生じゃないけど。だから、そんなことは言わないことにしているけどね。

詐欺はだます方が悪いがだまされる方だって悪い。年率10%、元本保証なんていう投資があるわけがない。欲の皮が突っ張った結果だ。もっとも「俺々詐欺」は別だけどな。弱みにつけこむからな。

再試験の人数

25年度前期が終わり、試験に合格しなかった場合、8月末に再試験となる。再試験対象数を、学科別科目別にまとめてみた。

20130821re-exam

さって、この数値を見てどんな考察ができるだろうか。学科によって学年の人数は異なるから、この数値から単純に比較はできない。

半分近くの学生を不合格としている科目がある。教える側から見た合格レベルに達していない学生が多々いるというのはよくわかる。教員側の設定が高すぎるとは思わない。学生を見ていると、むしろ低いと思う。単純に数値を見ると、この教員が設定したレベルをクリアできるように教えているかというと疑問がでてくる。管理者はレベルを低く設定している。レベルを下げれば、数字だけを見るとこのような疑問が出ないからだ。レベルを下げる方法は試験問題を簡単にして、見かけ上、学生の得点を上げるのだ。平均点が70点位になるように設定するのだ。60点が合格レベルと学則に書いてあるから、平均点が70点位だと10〜20%の学生が不合格になる。再試験を実施することによって、最終的な不合格者を数%以内に納めることができるのだ。

半分の学生を不合格にするというのは、学生にもっと勉強しろといっていることなんだと思うが、学生はその意図を理解しているだろうか。学生は、みんな落ちているから、どうせそんなに最終的な不合格者を出す訳が無い、という安心感を持つだけではないだろうか。

本当は、講義で教えた、小テストで答えさせたことが理解できているということを前提に、考えないと解けない問題を出したいのだ。そんな問題を出したら、平均点が50点台だ。過半数が不合格になる。そのような問題は問題数が少なくなる。考える時間が必要だからだ。というわけで学生が予想できる数多くの問題を出すことになり、マークシートということになる。

再試験対象者が20名を越える科目があるということは、この20名のかなりの数が複数の科目で不合格ということだ。2、3年生は学外実習が夏休みに組まれていないので、前期を厳しく評価するというのは、夏休みに遊ばせないといういい方法だと、教員は考えるのだろう。しかし、学生はそうは思っていないにちがいない。8月の最後の最後になって初めて勉強を始めるにちがいない。8月の前半は遊びまくっているんだろ。

あぢあぢあぢ

夏休みが開けて出勤したら、オフィスの室温が38度!!

ま、国内最高の41度には及ばないけど、暑くて仕事にならない。

なんせ、オフィスには冷蔵庫とパソコン2台の電源が入りっぱなしで、閉め切っているし隣の部屋なども誰もこないから、建物全体が暑いままだからな。

Roundcube のプラグイン

WebメールのRoundcube をインストールしたものの、あまりにもシンプルで、おまけ機能がない。

Squirrel mail は不細工だが、多くのユーザがいて情報が多く、さまざまな機能がある。

Roundcubeは見た目がいい。そこでプラグインを加えてみようとした。

Roundcube にインストール時に始めから用意されているプラグインは

acl
additional_message_headers
archive
autologon
database_attachments
debug_logger
emoticons
enigma
example_addressbook
filesystem_attachments
help
hide_blockquote
http_authentication
jqueryui
managesieve
markasjunk
new_user_dialog
new_user_identity
newmail_notifier
password
redundant_attachments
show_additional_headers
squirrelmail_usercopy
subscriptions_option
userinfo
vcard_attachments
virtuser_file
virtuser_query
zipdownload

である。どれが何のサービスするのかわからん。

まず、メールのフィルタリングのプラグイン、managesiev だ。

http://trac.roundcube.net/wiki/Plugin_Repositoryによると、プラグインを有効化するためには;

A plugin is not used until you enable it by adding its directory name to the config option plugins, as an array element. This is done by editing your local config/main.inc.php file. Only plugins listed in the array will be enabled.

For example, to enable plugins named additional_message_headers and archive, config/main.inc.php should contain this line:

$rcmail_config[‘plugins’] = array(‘additional_message_headers’, ‘archive’);
To disable a plugin, just remove it from the list.

というわけで、
/library/server/web/data/sites/default/roundcubemail-0.9.2/config
の main.inc.php を書き換える。バックアップをmain.inc.php.20130820として保存しておく。
421行目あたりに

// ———————————-
// PLUGINS
// ———————————-

// List of active plugins (in plugins/ directory)
$rcmail_config[‘plugins’] = array();

というのがあるのでarray()の括弧内にシングルクオートでくくってプラグインの名前を記入する。複数あるときは , で区切る。

$rcmail_config[‘plugins’] = array(‘managesieve’); と’managesieveを加筆した。

でwebmail のページにアクセスしてログインして、設定を選ぶと

20130820sieve

フィルターが加わる。でフィルターをクリックしてフィルターを作成しようとすると、「サーバに接続できませんでした」とのエラーだ。

あちこち、ググってみたけどよくわからん。どうやら

/library/server/web/data/sites/default/roundcubemail-0.9.2/plugins/managesieve

にconfig.inc.phpを作らないとだめなようだ。 config.inc.php.dist があるから、これを元に作成する。

sh-3.2# cp config.inc.php.dist config.inc.php

ですね。でconfig.inc.phpを開いてみると17行目に
$rcmail_config[‘managesieve_auth_type’] = null;
とある。Roundmailそのものの設定のときAuthenticationをPLAIN にしたらよかったので null を PLAIN と書き換えて問題は解決。

あちこちのサイトでポートを2000にするとかしないとかが書いてあるが0.9.2ではポートの指定などしなくていいようだ。そりゃそうだろ。httpのメールなのに、そしてユーザのパソコンは普通firewallの中にあるわけで、firewallに穴をあけることができるのはネットの管理者だけで、管理者はRoundcubeのために穴なんか空けてくれないからな。

他のプラグインは?ということで、あちこちみていたら、Pulugin Manager というのが便利らしい。

plugin_managerの主な機能は;
1- ユーザーレベルでのプラグインのコントロール
2- データベースの整頓とユーザ・プライバシー確保
3- 単純化されたプラグインの分配
4- プラグインのアップデート
5- プラグインのRoundcube バージョン依存性情報
6- 一体化けした現地化とその分配
7- 現地語へ翻訳とトラッキング
8- プラグイン報告システム
9- リリース・ノートと最新のドキュメンテーション

そこで;

http://myroundcube.com/myroundcube-plugins/plugin-manager/plugin-manager-center
からplugin_manager をダウンロードする。解凍する。

/library/server/web/data/sites/default/roundcubemail-0.9.2/plugins
に入れ
sh-3.2# chown -R root:wheel settings
sh-3.2# chown -R root:wheel qtip
sh-3.2# chown -R root:wheel plugin_manager
sh-3.2# chown -R root:wheel http_request
sh-3.2# chown -R root:wheel db_version
sh-3.2# chown -R root:wheel codemirror_ui
とオーナーをrootにしておく(必要があるかどうか知らない)

/library/server/web/data/sites/default/roundcubemail-0.9.2/config
の main.inc.php を書き換える。バックアップをmain.inc.php.20130820として保存しておく。

// ———————————-
// PLUGINS
// ———————————-

// List of active plugins (in plugins/ directory)
$rcmail_config[‘plugins’] = array();

の部分を探す。421行目あたりですな。
$rcmail_config[‘plugins’] = array(‘plugin_manager’);

で、webmail のページにアクセスし、ログインして、右上の
20130820roundcubesettings
設定をクリックすると
20130820pulugin_manager
という表示がでてくる。指示にしたがって、
/library/server/web/data/sites/default/roundcubemail-0.9.2で

sh-3.2# vi adxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.myrc

というファイルを作成する。
作成されたのを確認して
20130820plugin_manafger_crypt
再び、webmail の設定ページ
20130820roundcubesettings_done
で  Done  をクリックする。
20130820pulugin_manager_pane
とManager Pluginsが出現する。

これだけだとよくわからんのでさらに
$rcmail_config[‘plugins’] = array(‘plugin_manager’,’settings’,’qtip’,’http_request’,’db_version’,’codemirror_ui’,’managesievel’);
と書き加えた。プラグインを検索してダウンロードしたりすることができるようだ。こっちのほうはテストしていない。動いているようだということを見ただけ。

それぞれのPlugin のconfigファイルを書き換える必要があるのだろうけど、まだこの時点ではやってない。

プラグインを有効化するのに、いちいちconfigファイルをエディタで書き換えるのは泥臭い。まだバージョンが1にもなっていないからだな。まだまだ完成していないんだ。Squirrel mail のほうがいいかも。しかしLion ServerのときはAppleはインストールしていたんだろ?なぜやめたんだろ?

プラグインのリストはRoundcube本家にある。plugin_manager はインストールしても一般ユーザが使えそうも無いのではずした。教えるのも面倒だからな。ほかのプラグインも魅力的なのがない。つかいこなしていって、必要と思われるのを順次加えることにする。

今年の夏休み

今年の夏休みは暑くて大変だった。暑さはまだ続くらしい。今週一杯は続くらしい。

で、今年の夏休み、8月10日(土)〜8月18日(日)までにやったことは;

8月10日はOpen Campus に割り当てられたので出勤。

それからは、「管理者のような じじい は暑いから外に出るな、熱中症で病院に運ばれた人の50%以上は じじい と ばばあ だ。家にひっこんでクーラをつけて、沈殿していろ」 というニュースばかりで、単純な管理者はこれに従ってしまったのだ。もっとも、何の予定もなかったからな。

8月17日朝7時頃、このサーバの設置してある建物が耐震の改築工事があるので停電となるから、サーバとUPSをシャットダウンしに行った、ほかのサーバもだ。

8月18日(日)午後6時過ぎに、停電が回復するので、サーバ群を再起動しに行った。

というわけで、することのない小心者は悪事に走るところだが、悪事はしなかった と思う。

連続TVドラマのCSI、Hawaii-five-O 、Person of Interest、とか高校野球、プロ野球、世界陸上なんかを見ながら、ゴロゴロして、ときどきこのサーバにWebmail をインストールしたりしていた。沈殿したままというわけだ。

太ったかもしれない。体重計には乗らないことにする。

掃除機を使ったら集埃袋が満タンで、排気ガスが変な匂いになっていた。集埃袋の中でなにかが発酵していたに違いない。交換した。多分、1年ぶりだ。

夏休み最終日に机の足に右足小指をぶっつけで内出血。まだ痛い。骨折はないだろうな。

あー、非生産的な夏休みだった。ま、じじいは消費活動だけだからな。

Webメールのインストール

Mountain Lion Server (10.8サーバ、OSXサーバ)にはWebmail がない。そこでWebメールとしてRoundcube を選んでみた。

roundcubemail-0.9.2 である。

ダウンロードして解凍した。できたフォルダはroundcubemail-0.9.2である。
操作はrootになってからの方が楽なのでrootになって実施する

$ su
Password:

ですな。

ダウンロードし、解凍したroundcubemail-0.9.2を
/Library/Sserver/Web/Data/Sites/Default/ に移動させる。
オーナーをroot:wheel にしておく。

sh-3.2# chown -R root:wheel roundcubemail-0.9.2

さらに /Library/Sserver/Web/Data/Sites/Default/roundcubemail-0.9.2で
Webサーバがtempとlogsフォルダの書き込みが可能になるようにオーナーを変更する。

sh-3.2# chown -R www:www temp
sh-3.2# chown -R www:www logs

確認する

sh-3.2# ls -al
total 192
drwxr-xr-x@ 20 root wheel 680 6 17 00:10 .
drwxr-xr-x 9 root wheel 306 8 15 14:12 ..
-rw-r–r–@ 1 root wheel 1344 6 17 00:10 .htaccess
-rw-r–r–@ 1 root wheel 12895 6 17 00:10 CHANGELOG
-rw-r–r–@ 1 root wheel 8901 6 17 00:10 INSTALL
-rw-r–r–@ 1 root wheel 35147 6 17 00:10 LICENSE
-rw-r–r–@ 1 root wheel 4022 6 17 00:10 README.md
drwxr-xr-x@ 10 root wheel 340 6 17 00:10 SQL
-rw-r–r–@ 1 root wheel 2712 6 17 00:10 UPGRADING
drwxr-xr-x@ 14 root wheel 476 6 17 00:10 bin
-rw-r–r–@ 1 root wheel 381 6 17 00:10 composer.json-dist
drwxr-xr-x@ 6 root wheel 204 6 17 00:10 config
-rw-r–r–@ 1 root wheel 11999 6 17 00:10 index.php
drwxr-xr-x@ 10 root wheel 340 6 17 00:10 installer
drwxr-xr-x@ 3 _www _www 102 6 17 00:10 logs
drwxr-xr-x@ 31 root wheel 1054 6 17 00:10 plugins
drwxr-xr-x@ 9 root wheel 306 6 17 00:10 program
-rw-r–r–@ 1 root wheel 26 6 17 00:10 robots.txt
drwxr-xr-x@ 4 root wheel 136 6 17 00:10 skins
drwxr-xr-x@ 3 _www _www 102 6 17 00:10 temp

シンボリックリンクの作成

sh-3.2# ln -s /Library/Server/Web/Data/Sites/Default/roundcubemail-0.9.2 webmail

これで http://example.com/webmail/installer/でRoundcubeのインストール・ステップにアクセスすることができる。

データベースの作成
phpMyAdmin でエータベースを作成。データベース名をroundcubemailとした。
アクセスできるユーザにroundcube;localhost;パスワードxxxx、特権はすべて可としておいた。

http://example.com/webmail/installer/
にアクセスしたら;

20130816roundcube-1

となった。赤字がエラーだ。

Mcrypt: NOT AVAILABLE(See http://www.php.net/manual/en/book.mcrypt.php)
Intl: NOT AVAILABLE(See http://www.php.net/manual/en/book.intl.php)

SQLite (v2): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-sqlite.php)
SQL Server (SQLSRV): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-sqlsrv.php)
SQL Server (DBLIB): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-dblib.php)

ができていないということだ。拡張機能が動いていないという警告とデータベースがないという警告だ。

拡張機能のMcrypt: NOT AVAILABLE については、設定したはずなのにと思って、/etc/php.ini を見たら加筆した部分が消えている。OSアップデートしたときに書き換えられちゃったにちがいない。

[mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open

; Directory where to load mcrypt algorithms
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.algorithms_dir=

; Directory where to load mcrypt modes
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=

extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so

と太字の部分 extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so
を書き加えておいた(サーバ構築の記録34項参照)。

Intl: NOT AVAILABLEについては、MACPORTで探してみた。intl とはなんやら国際化の意味である。
/opt/local/bin で

sh-3.2# ./port search intl

としたら

php53-intl @5.3.23 (php, devel)
internationalization extension for PHP

というのがあったから、phpのバージョンの一致するやつ-php53-intl-をインストールした。

sh-3.2# ./port install php53-intl
Warning: port definitions are more than two weeks old, consider using selfupdate
—> Computing dependencies for php53-intl
—> Dependencies to be installed: icu
—> Fetching archive for icu
—> Attempting to fetch icu-49.1.2_1.darwin_12.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/icu
—> Attempting to fetch icu-49.1.2_1.darwin_12.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/icu
—> Installing icu @49.1.2_1
—> Activating icu @49.1.2_1
—> Cleaning icu
—> Fetching archive for php53-intl
—> Attempting to fetch php53-intl-5.3.23_0.darwin_12.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/php53-intl
—> Attempting to fetch php53-intl-5.3.23_0.darwin_12.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/php53-intl
—> Installing php53-intl @5.3.23_0
—> Activating php53-intl @5.3.23_0
—> Cleaning php53-intl
—> Updating database of binaries: 100.0%
—> Scanning binaries for linking errors: 100.0%
—> No broken files found.

表示されたWarning:はとりあえず無視した。

/opt/local/lib/php53/extensions/no-debug-non-zts-20090626
にintl.soがインストールされたことを確認した、

で、PHP に認識させるために /etc/php.ini に加筆する。どこに書いたらいいのかわからないので、とりあえず一番下に

[International language]
extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/intl.so

と記入した。

これで
http://example.com/webmail/installer/
に再度アクセスしたらOKとなった。
データベースは At least one of them is required.とあるんだから、そしてMySQL: OKとなっているのだからいいのだろう。

そんでInstallerを先に進めた。
データベース名、データベースユーザ名、パスワードは先にphpMyadminで決めた通りだ。smtpサーバのところだけ書き加えた。あとはデフォルトのまま。

configファイルを2つ作るというところでは指示にしたがった。
Download が一番間違いないから2つのファイル、db.inc.phpとmain.inc.php をダウンロードし、/Library/Server/Web/Data/Sites/Default/roundcubemail-0.9.2/config内に入れた。
owner をほかのファイルと同じようにroot:wheel とした、アクセス権は644のままだがいいのだろうか?

Check DB Config でデータベースはいいが DB Schema: NOT OK(Database not initialized) とでてきたので その下のボタン(refresh だったかな)をクリックして解決。
Test SMTP config で
Sender: hoge@localhost
Recipient: hoge@localhost
と入力して Send test mail をクリックしてhoge宛てにメールがきていることを確認した。

Test IMAP config で
Server: localhost
Port:143
Username:hoge(このサーバのユーザ名)
Password:xxxxxx(ユーザのパスワード)
を入力したら
Connecting to localhost…
IMAP connect: NOT OK(Login failed for hoge from 192.168.xx.xx. Authentication failed.)
だって。

どうやら、パスワードの暗号化の部分でひっかかっているんだろ。http://example.com/webmail/ でRoundcube の最初のページがでて来る。ユーザ名とパスワードを入力しても通らない。同じ理由からだ。

再度、installer のページから設定する必要があるようだ。このままinstallerのページにだれかがアクセスすると面倒なことになるから、installerを一時的に使えないようにしておいた。

明日、明後日とこのサーバのある建物が停電なので、で、また、今日はアルコールを体が要求しているのでここまでだ。続きは来週だな。

一発で動くとは思っていなかったし、問題にぶつかるたびに、TVの推理ドラマを見に行っちゃうとか、他のことをするからなかなかできない。夏休にやるとこういことになる。普段の仕事がつまっているときにやると、もっと早くなるのだが。

停電明けに実施して成功した。

main.conf.php の85行目

// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
// best server supported one)
$rcmail_config[‘imap_auth_type’] = NULL;

の太字の NULL を PLAIN に書き換える。

// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
// best server supported one)
$rcmail_config[‘imap_auth_type’] = PLAIN ;

ですね。

これで http://example.com/webmail/ にアクセスして loginできる。送受信ができることを確認しておしまい。

[追加情報]

★ Installer を再度起動して始めからやり直すためには、
/library/server/web/data/sites/default/webmail/config
にあるmain.inc.phpの185行目が

// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
// ONLY ENABLE IT IF YOU’RE REALLY SURE WHAT YOU’RE DOING!
$rcmail_config[‘enable_installer’] = false;

となっているから、この false を true に書き換える。

もう既に、出来上がっちゃって、さらに変更するためには;/library/server/web/data/sites/default/webmail/config/main.inc.php を直接書き換えちゃった方がはやいと思う。

★ もしconfigファイルを作成のときデフォルトのホスト名を空欄にすると、ログインのとき、ユーザ名とパスワードとホスト名を聞いてくる。ホスト名は改めて入力する必要がないのだから、78行目を

$rcmail_config[‘default_host’] = ‘example.com‘;

と太字の部分に自分のドメインを書き加える。

★ さらにScure な設定をするためには(まだやってないから確証はない);

LANCARD.LABによると

IMAPサーバの指定と設定

78行目
$rcmail_config[‘default_host’] = ”;

$rcmail_config[‘default_host’] = ‘ssl://imap.example.com:993’;

81行目
$rcmail_config[‘default_port’] = 143;

$rcmail_config[‘default_port’] = 993;

85行目
$rcmail_config[‘imap_auth_type’] = PLAIN;

$rcmail_config[‘imap_auth_type’] = *****;
*****にDIGEST-MD5、CRAM-MD5、LOGIN、PLAIN のどれかを入力する(どれがどれか、ユーザのメールソフトがPLAIN以外にどれに対応しているかによって決めないといけない。たいていのメールソフトは自動的に設定してくれると思うが。)

SMTPサーバを指定して設定する
146行目
$rcmail_config[‘smtp_server’] = ”;

$rcmail_config[‘smtp_server’] = ‘ssl://example.com’;

150行目
$rcmail_config[‘smtp_port’] = 25;

$rcmail_config[‘smtp_port’] = 465;

154行目
$rcmail_config[‘smtp_user’] = ”;

$rcmail_config[‘smtp_user’] = ‘%u’;

158行目
$rcmail_config[‘smtp_pass’] = ”;

$rcmail_config[‘smtp_pass’] = ‘%p’;

さらに
/library/server/web/data/sites/default/webmail/config/db.inc.php の
32行目

$rcmail_config[‘db_dsnr’] = ‘mysql://roundcube:pass@localhost/roundcubemail’;

//データベースのユーザ名とパスワードを入力
$rcmail_config[‘db_dsnw’] = ‘mysql://root(ユーザ名):******(パスワード)@localhost/roundcubemail’;

とするのがいいようだ。

まだ実施していない。

imap が動いている?

Mountain Lion (10.8) Server では以前の10.6 のときと異なり、サーバ管理ソフトからPOP3とIMAPを独立して制御できない。Server.app ではメールサーバをON-OFFどちらかにしか設定できない。ONにしたらPOPサーバが動いているのはメールが使えるので確認できるが、IMAPはルータを設定していなかったことから確認できなかった。

IMAP の動作確認は;

http://www.lins.jp/~obata/imap/uw-imapd.html を参考にした。
サーバでターミナルを起動し、telnet でポート143で接続してみる。

$ telnet localhost 143
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=CRAM-MD5 AUTH=X-PLAIN-SUBMIT AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN AUTH=GSSAPI] Dovecot ready.

このような表示が出れば動いていることが確認できる。さらにユーザ名でログインし、メールボックスがちゃんとしているかどうかの確認ができる。IMAPのコマンドは、頭にコマンド番号をつける必要がある。番号をつけなかったから、最初はなにやってもエラーだった。下の例ではコマンド番号が A03 でlogin すると 同じコマンド番号が頭についた形で返事が来る。A04 というコマンド番号でメールボックスがどうなっているかを見て、A06 でlogout したわけだ。コマンドに大文字小文字の区別はない。

A03 LOGIN [ユーザ名] [パスワード]
A03 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS COMPRESS=DEFLATE X-FTS-COMPACT QUOTA URLAUTH] Logged in

A04 SELECT INBOX
* FLAGS (Answered Flagged Deleted Seen Draft NonJunk)
* OK [PERMANENTFLAGS (Answered Flagged Deleted Seen Draft NonJunk *)] Flags permitted.
* 37 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1346028720] UIDs valid
* OK [UIDNEXT 1091] Predicted next UID
* OK [HIGHESTMODSEQ 2698] Highest
* OK [URLMECH INTERNAL] Mechanisms supported
A04 OK [READ-WRITE] Select completed.

A06 logout
* BYE Logging out
A06 OK Logout completed.
Connection closed by foreign host.

IMAP のコマンドは他に色々あるはずだが、いじることはないので、調べることもしないよ。