こっちの大学で、研究グループの大学院学生と教員のメーリングリストを、かなり以前に作成して、有効に使われている。
あっちの大学では、学部学生のメーリングリストを作成して有効に使うつもりだった。しかし、考えは甘かった。
学部学生の全員が携帯(スマホ)を持っており、この携帯メールが学生がもっぱら使うメールなのだ。大学もメールアカウントを配布しているが、学生はこっちのメールはほとんど見ない。
そこで、携帯のメールアドレスでメーリングリストを作成し運用しているのだ。
携帯のメールアドレスはユーザが自由に変更できるので、学生はしばしば変更する。迷惑メール対策でもあるからだ。しかしメーリングリストへの意識がないから、変更の届け出がない。管理ページで新規のアドレスの登録、削除をユーザ自身ができるようになっているが、そんなの教えたくない。メールアドレスの入力を間違える奴が出てくるに決まっている。学生からのメールでそのヘッダーにあるメアドをコピペして再登録するほうが確実だ。
数が少ないだろうということで、メアドを変更したら管理者へ届け出よとしたのだ。これが敗因だ。半年すぎると1クラス約50名のうち数名はメアドを変更している。その中の多くが、iPhoneへの変更だ。学生の中ではdocomo からauやSoftbankに鞍替えするのが多い。
この秋からdocomoもiPhoneを扱うようになるようなので、ちと少なくなるかも。
2学科4学年各2クラスだから16ヶのメーリングリストがある。維持するのが大変だ。管理者は1年生の講義を受け持っており、しばしば、講義や実習の情報をこのメーリスで送付するので1年生は、メアドを変更してもすぐ届けてくる。メールがこないと不利になるのがわかっているからな。
2年生以上になると、メーリスからの情報が少なく、国試の過去問が毎週送られてくるだけだ。国試対策について意識がないから、受け取れなくても「ま、いっか」ということになる。4年生だと国試対策の意識がでてくるけど、2、3年生はどうでもいいようだ。
というわけで、年度が始まって半年の夏休みの最後はこのメーリスの維持を試みているのだ。メーリスに、「あんたのクラスの誰と誰は、メアドを変更したらしく、メールがとどいていない。このメールを受け取ったらそいつ等に管理者に連絡するように伝えろ。」とメールを出した。該当者は43名だ。クラスの友達から連絡を受けて管理者にメアドを変更した旨のメールをよこしたのは12名。どうやら、クラスの中に友人がいないのがかなりいるのか、それともどうでもいいことなので無視しているのかわからない。
無視されている可能性が大だ……..
メアドを変更したというメールも、ひどいものだ。携帯からのメールなので、送信者名がない。件名がない。「届けなかったのはすんまへん」の言葉も無い。ヘッダーのメアドをみて管理者が判断することになる。なんてこった。
大学が学生に付与するメールアカウントからメーリングリストを作る。学生には携帯に自動転送するように設定させる。という案も考えたが、大学が付与したメールアカウントは、自動転送するとサーバに残らない。Yahoo mial のサービスを使っているからだ。ドメイン名こそ大学の名前だが、実態はYahoo mail なのだ。携帯では読みにくいメールがあるし、添付書類は今時の携帯は受け取れるだろうけど、受け取った添付書類を印刷するのは面倒だし…..彼等にはできないだろうし….
携帯のメアドを変更したとき、大学のアカウントでの自動転送先も変更するなどということは、学生はしないだろうし…….そうなったら、誰が受け取れていないのか把握できるかどうかわからんし(メーリスにエラーが返ってくるはずだけど、xxx-owner のメールはあまりチェックしてないからな)….
だめだな。
そっか、大学のアカウントと携帯両方に送付すればいいかも。で大学のアカウントに来たメールは自動転送するな。大学のアカウントはWebメールになっているから携帯でブラウザを使って読め。いまどきガラ携はいないだろ。みんなスマホだろう。そうすれば、携帯のメアドを変更しても届け出がなければ一切面倒みないとすることができる。
問題は、ブラウザで読むというのはacitveな行為で、携帯に来たメールを読むのはpassiveな行為であることだ。学生はactive に何かをするということがなかなかできない。常に受動的なのだ。これまでの教育で受動的に過ごすことに慣れてしまっているのだ。常に正解はどっかに書いてあると思っているのだ。だから、携帯にメールがこないとそのままで、決して大学のアカウント宛のメールを読まないのだ。国試の過去問を送りつけているのは感心を惹起させるためなので、最初は受動的でないとだめなのだ。いつから能動的になるかは個人によって異なるが、その時期を早めたいのだ。
「サイト管理」カテゴリーアーカイブ
Squirrelmail プラグイン Filters
SpamassassinというプラグインとFilters というプラグインを Squirrelmail OSX(10.6)サーバ で使ってみたのは前の投稿だ。
トラブルが生じた。プラグインのFilters で、検出文字列に日本語のようなマルチバイトの文字列が含まれるとsquirrelmail にログインできなくなってしまう。そんなのユーザはわからないからフィルタを設定したらログインできなくなってしまったのだ。
エラー:要求を完了できませんでした。
問合せ: SEARCH CHARSET ISO-2022-JP ALL UNDELETED From
理由: Invalid search key
とのエラーメッセージが出てきてユーザレベルではにっちもさっちも行かなくなる。
ユーザからのクレームがあって、直すのに、なぜかわからなので苦労した。日本語の問題だということしかわからない。
http://example.com/webmail/src/configtest.php
でsquirrelmail の config をテストすると
エラーがあって、short_open_tag = Off をOn にしろといっている。
/etc/php.ini の225行目で;
short_open_tag = Off
を
short_open_tag = On
としたらこのエラーは解消し config テストをパスした。しかし相変わらず Filteters プラグインを使うとログインできない。同じエラーメッセージだ。
あちこち探し回って、ようやくわかったのが、フィルターが日本語を理解してくれないということがわかった。ユーザがアクセスする度に、ユーザが設定したフィルタのファイルを読むわけで、ここに日本語があると止まってしまうわけだ。
はフィルタの検出文字列が日本語なので、だめで
は、問題ないのだ。半角英数字しか受け付けられないのだ。
ユーザのフィルタの設定がどこにあるかわからん。あちこち探した。squirrelmail のconfigure でどこにあるかが表示される、というかどこに置くかを設置できることを思い出した。ここから判断すればいい。
/usr/share/squirrelmail で ./configure を実行すると
SquirrelMail Configuration : Read: config.php (1.4.0)
———————————————————
Main Menu —
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >>;
とでてくるから、4のGeneral Options を選ぶと
SquirrelMail Configuration : Read: config.php (1.4.0)
———————————————————
General Options
1. Data Directory : /private/var/db/squirrelmail/data/
2. Attachment Directory : /private/var/db/squirrelmail/attachments/
以下略
とある。つまりDataは /private/var/db/squirrelmail/data/にあるわけだ。これで調べないと、ユーザ毎のフィルタの設定ファイルがどのditrctoryにあるのか探すのは大変だ。サーバによって違うからな。というかインストールするときに決まっちゃうわけだけど。
そんでもって/private/var/db/squirrelmail/data/に行くと、
[ユーザ名].pref というファイルがユーザ分だけあるから、該当するユーザの[ユーザ名].pref を開く。
filter16=From,。レ、エチ・フ。ロ,Deleted Messages
のように日本語のようなマルチバイト文字が含まれているフィルターがある。エディタでこのフィルタを削除しちゃえばいい。
filter2=Subject,&ZyiZrFA2aX2Q6A-,INBOX.&ZyiZrFA2aX2Q6A-
これは件名をフィルタの検出文字列にして、検出文字列が日本語で、受信箱の日本語名フォルダに移動させるというフィルタだ。これも引っかかる。
多くのプラグインは日本語に対応していないのでしょうがない。ユーザレベルでフィルタの削除ができないと、大変だ。
あるサイトのWebメールの使い方のページではフィルタのところに
メッセージフィルタ機能の条件に日本語等のマルチバイト文字を使用することはできませんのでご注意ください。マルチバイト文字を設定した場合、次回から SquirrelMail にログインできなくなります。
と表示してあった。ユーザにとっては、これじゃわからないよな。もし設定してログインできなくなっちゃたら、どうしたらいいんだよ。フィルターの設定のページに注意書きを加えれば、少しはましになるが、加えるのも面倒だphpファイルを書き換えないといけない。
他のプラグインは;
http://squirrelmail.org/plugins.php にある。
使わないけど、一応他のプラグインを使うとき、 compatibility というプラグインがあって、squirrelmail のバージョンに合わせて(パッチを充てて)くれるものらしい。
compatibility :Allows plugins to remain compatible with all versions of SquirrelMail. というもの。
/usr/share/squirrelmail/plugins/compatibility で
sh-3.2# patch -p0 < patches/compatibility_patch-1.4.2.diff
patch: **** rejecting file name with “..” component: ../../functions/strings.php
squirrelmail のバージョンに合わせたパッチを当てるため 上記を実行する。
]]>
Spamassassin Squirrelmail OSX(10.6)サーバ
実は、自宅にもサーバがあって、こっちはMac OSX10.6 サーバなのだ。個人的サーバで、管理者と家族しか使っていない。自分が自由になるサーバというのを持つのはなにかと便利だ。メールアカウントなんか勝手にいくつでも作れるからな。
実は、こっちの大学の学長選挙のとき候補者のページが必要になり、大学のサーバに置くわけにいかず、この自宅サーバを使ったことがある。民間の無料レンタルサーバを使えばいいのだが、広告があったりする制限があり、また申し込んで使えるまでが面倒なので、管理者の自宅サーバを使っちゃったのだ。なんせ、朝一番で作れ、というわけだからな。で午後には立ち上がった。コンテンツさえ有ればすぐなのだ。なんせ管理者が完全に自由にできるサーバだもんな。たった2週間で閉じたサイトだ。
でユーザが、迷惑メールをなんとかしてほしいということになった。使っているのはWebメールのSquirrelmail なのだ。これはOSX10.6サーバ に始めからついていたものだったと思う。プラグインにSpamassassin がなかった。そこで、spamassassin-2.02-beta13mar03.tar.gz とやらをダウンロードし、解凍して、できた spamassassin フォルダを /usr/share/squirrelmail/plugins に置いた。権限やownerはわからないので他のプラグイン同様 root:wheel としておいた.
/usr/share/squirrelmail で
$ ./configure
とするとsquirrelmail の設定ができる。番号を選んでON-OFF するだけだ。すでに動かすための設定は済んでいるからplugin の設定だけだ。
ついでに、これまで使っていなかったフィルタのプラグインも使うことにした。
WebメールにアクセスしてSpammassassin の設定画面に行くと、「管理者に連絡して”SpamFilters_YourHop” 変数を設定しろ」と警告がでてくる。
/usr/share/squirrelmail/plugins/filters のsetup.php の一部を変更する。
70行目に
$SpamFilters_YourHop = ‘ ’;
というのがあるから
$SpamFilters_YourHop = ‘by example.com‘;
とサーバのドメインを加筆する。
これでおしまい。
このプラグインはspamメールのデータベースに載っているspamメールを排除するものだ。
Spam のデータベースはいくつもあって、その中から選んで使う。多分、最近の日本語の迷惑メールはこのデータベースにないのではないか。援助交際とかB-CASカードとかの迷惑メールだ。Viagura はこのデータベースにあるかもしれない。だからあまり役に立たない可能性がある。
特定のメアドから来る奴はフィルター・プラグインで排除できる。
Spam Filter Configuration とかいうのもあって、これはSpam Scoreを自分で設定して排除するものだ。Spam Score は5段階くらいから設定するのだが、以前やったときは、選別がうまくいかない。spamでないメールがspamに、その逆もあったりで、止めたことがある。10年くらい前のことだから現在はどうなのかわからない。
あとできがついたのだが、このSpamassassin をインストールしなくてもFiltersを使えばいいようだ。必要なかった。
http://example.com/webmail/src/configtest.php でみたら、このspamassasinプラグインはsetup.phpを読めないから動いていないというエラーがでてくる。filters をうごかしたらspamassasinもうごいている。なんだ?
winmail.dat
Winユーザからの添付書類がwinmail.dat となってしまうのが時々ある。
原因はすでによく知られていて、Win のOutlook のデフォルトの設定が添付ファイルをリッチテキストにしてしまうからだ。この形式(TNEF file)をOutlook以外のメールソフトが理解できないからだ。
要するにMicrosoft が悪い。デフォルトでプレーンテキストで送付するようにしておけば問題がないのだ。送付者側が受取人毎に設定できるようにしておけばいいのだ。実際には逆でデフォルトでリッチテキスト、受取人毎にプレーンテキストに設定できるとなっている。
受信者毎に設定するといっても、受信者はいつも同じPCでメールを読む訳じゃない。現在では、外出先ではMac、オフィスではWndowsあるいはその逆、また外出先ではタブレットかスマホかもしれない。だから受取人別に設定するというのは現実的でない。どのプラットフォーム、メールソフトでも問題ないとすべきだ。
htmlメールもやめるべきだ。送り主は強調したいから赤文字、太文字としたいかもしれないが、受け取る方はそのメールの重要度は、送信者と異なるからだ。Outlookのhtmlメールはデフォルトのフォントが小さくMacユーザには読みにくいことがある。
この現象が、毎回必ずなるのならいいのだが、何故か、ときどきなんだよね。
送信側は Fix it をダウンロード
して実行すればいい、あるいはレジストリを書き換えればいいようだ。確認してないし確認もしたくない。
受信者側は送信者に文句を言っても、送信者が理解できそうにない、送信者を説得できそうにない、送信者にそのようなことを言うのが恐れ多い、面倒だから送信者に言いたくない、何回文句をつけてもやってくれない場合、自分で対応する。こっちのほうが簡単だ。そのうち、他の誰かが送信者に文句を言うだろう。
Win の場合 winmail opener
をダウンロードして使う。
Macの場合は TNEF’s Enough
をダウンロードして使う。
ownCloud その2
ownCloud
フォルダはアップロードできない。単一ファイルしか操作できない。一昔前のFTPソフトと同じだ。
同一名のフォルダを作成し、個別にファイルをアップロードするしかない。
フォルダのダウンロードもできない。ただし、管理者権限で「メニュー」の「管理者」から

「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/ にアクセスして詳細設定を開いて

を入力する。この絵では管理者をowncloud にしたがadmin とかのほうがいい。
「セットアップを完了します」をクリックしてできあがり。
再度、http://example.com/owncloud/ にアクセスし、owncloudの管理者の名前とパスワードを入力してログインすると、ownCloudへようこそ の画面がでる。
3つのボタンがあるが、これはownCloud のダウンロードのページにあるのと同じで、端末がWin、Mac、Linux、Android、iPhone であればそれぞれ同期を取るアプリをダウンロードするページにいきますよ ということだ。だから右上の × をクリックして閉じて良い。同期が取れるのかは確認していないができるんだろ、きっと。
管理者でログインすると右上に管理者名があるからその右の三角をクリックしてメニューをプルダウンすればユーザを加えることができる。もちろん、加えるユーザをadminグループに入れてはいけない。

各ユーザは自分の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ドラマを楽しんでいたのだ。シアトル在住の日本人と一緒に紅白歌合戦を楽しんでいたのだ。なんて奴だ。奴といっても女だ。
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 のページにアクセスしてログインして、設定を選ぶと

フィルターが加わる。でフィルターをクリックしてフィルターを作成しようとすると、「サーバに接続できませんでした」とのエラーだ。
あちこち、ググってみたけどよくわからん。どうやら
/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 のページにアクセスし、ログインして、右上の

設定をクリックすると

という表示がでてくる。指示にしたがって、
/library/server/web/data/sites/default/roundcubemail-0.9.2で
sh-3.2# vi adxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.myrc
というファイルを作成する。
作成されたのを確認して
![]()
再び、webmail の設定ページ
![]()
で Done をクリックする。

と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/
にアクセスしたら;

となった。赤字がエラーだ。
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 のコマンドは他に色々あるはずだが、いじることはないので、調べることもしないよ。

