「サイト管理」カテゴリーアーカイブ

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

ルータの設定

ルータにはYAMAHA NYR500 を使っている。IMAPはこれまで通していなかった。他のPOP3とかは勿論通しておいたのだが、ユーザが特に必要としていなかったからだ。そしたら、通す設定方法を忘れてしまって、しばらく悩んだ。
ルータ設定のトップページ → 詳細設定と情報 → 基本接続の詳細な設定 → インターフェース WAN の設定の「設定」 → 静的IPマスカレード関連(フィルタの自動定義:80~94番) で 「追加」 をクリックする。
プロトコル:TCP、 ポー:143、使用ホストIPアドレス:ルータ配下のIMAPのメールサーバのIPアドレス(192.168.xx.xx)
を入力する。 静的IPマスカレード関連(フィルタの自動定義:80~94番)のところに
20130814router-1
プロトコル:tcp、ポート:imap2、使用ホストIPアドレス:192.168.xx.xx
と表示されたらOKだ。
さらに、ルータ設定のトップページ → 詳細設定と情報 →ファイヤーウォール設定 → WANポートのフィルタの設定 → でフィルタを追加する。
入り にチェック、pass、ログを残さない、送信元IPアドレス:*、送信元ポート:*、受信先IPアドレス:192.168.xx.xx、ポート:143 というフィルタを加える。
20130814router-2
ポートが開いているかどうかのチェックはCMAN のインターネットサービスのポートチェックが便利だ。
IPv4動的フィルタの一覧ではプロトコルはimap、imap3しか選択余地がなく、静的IPマスカレードではimap2 となるのはなぜだ?まだわかってないな。

メーリングリストの更新

夏休みになり、時間がとれるのでメールングリストの更新を試みている。
合計700名くらいで学年、クラス別なので1つのメーリスに40〜50名登録してある。メールがとどいていないのが40名。1年生には皆無。2年生以上になると、管理者の威光が及ばす、メアドを変更しても届けてくれない。1年生は、何回も生理学の連絡が行くからメールが届かないのは大きな損失になるからな。
2年生以上には、本来の業務以上のサービスをメーリスを使ってやってあげているのに、屁とも思っていないんだろ。
まんが日本昔話から「へや」の語源について。「屁ひり女房」の一場面.。
20130810fart_wife
このくらい迫力あると、学生も意識するんだろうな。

Mailman 普通配送メールを個人別にカスタマイズ

Mailman は受信者個別にメールを送付することができる。
/usr/local/mailman/Mailman のmm_cfg.py の一番下に以下の太字部分を書き加える。

# Put YOUR site-specific settings below this line.
MTA = ‘Postfix’
#Enale personalization.
OWNERS_CAN_ENABLE_PERSONALIZATION = Yes
VERP_PERSONALIZED_DELIVERIES = Yes

これで、ユーザに個別配送ができるようになる。
普通配送オプションに
20130808mailman
という欄が出現し、例えばヘッダーに各ユーザの名前を入れたりすることができる。pesonalizeの詳細を見ればその方法が書いてある。
普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   はい を選択し
普通配送会員へのメールに付けるヘッダ に %(user_name)s様 と入力すると、
20130809mailman-1
となり、宛先=To:がメーリングリストのアドレスに、本文の始めにユーザの名前=登録メールアドレスが自動的に入力される。
普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   完全個人別配送 を選択し
普通配送会員へのメールに付けるヘッダ に %(user_name)s様 と入力すると、
20130809mailman-22
となり宛先=To: が個別の登録メールアドレスに、Cc: にメーリングリストのアドレスが書き込まれ、本文の始めにユーザの名前=登録メールアドレスが自動的に入力される。
普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   いいえ を選択すると
20130809mailman-3
普通のメーリングリストとして配信される。このときヘッダーに変数のある文字列 %(user_name)s様 があるとエラー表示になる。そのまま強引に使うと、本文の始めに%(user_name)s様そのままが入力されてしまう。
 
この個別配送の方法は、Mailman のあるサーバが個別にメールを処理するので、サーバに負担がかかる。たった4つのアドレスしかないメーリングリストでも、個別配送にすると、一瞬、受け取りが遅くなるから、登録者が多数のときは配信が遅延するだろう。
docomo には個別のメールになるから、だれかが受信拒否していてもdocomoで勝手に迷惑メールとして排除しない可能性がある。やってないからわからないけど。
このdocomo問題に困っているのだ。50名程度の学生の携帯メール宛のメーリングリストがあって、25アドレスからUser unknown のメールがもどってきた。そのうち、6名は、個別にメールを送ってもUser unknown となる。つまりメールアドレスを変更したのだ。残る19名はすべてdocomoユーザであって、これらに個別にメールを送ると届くようで、メーリスで送ってUser unknown となったメールも受け取れているのだ。
このUser unkown のエラーが毎回くるわけではない。これが何故かわからない。ときどき来るのだ。
19名全員が受け取れたかどうかわからない。6名からメーリスからのメールも受け取ったとの返事があった。残り13名は返事がない。学生に返事を求めても返事が帰ってこないというのは、管理者にはこれら学生50名の学生に何の権限もないからだ。こいつらはもう生理学の単位を習得したからだ。アカハラの対象にならない学生というわけだ。こういう奴らにもサービスするのがいやになっちゃう。
一部はPCからのメールを受信拒否している可能性がある。しかし、このようなエラーが帰ってくるとMailman の方は送付できなかったとカウントするので、何回かメーリスからメールを送るとエラーが蓄積してMailmanは自動的に[ B ] マークがついて送信しなくなってしまうのだ。いちいち監視できない。
携帯・スマホは勝手に自由にメールアドレスを変更できるのが厄介の元で、学生はメールアドレスの変更を絶対といっていいほど届け出ない。ガラケーからiPhone に変更する学生が結構いる。docomo だったのがezwebとかi.softbankとかに変わっているからな。機種を変えても変更届けはない。
携帯・スマホが、もはや遊びの道具ではなく、重要な連絡手段になっているという認識は学生にない。
スマホにはメールの種類がいっぱいあってLine も加わってなんだかわからん。softbank.ne.jp とi.softbank.jp があるしezwebでは利用者が使い分けるらしい。学生には携帯で大学が配布しているメアドのメールを読めるように設定させる方がいいのかもしれない。そして受信したら必ず音がでる、画面に表示されるとかに設定させるのがいいのかもしれない。スマホには複数モデル(あるいはOS)と複数の電話会社があるからすべての種類の設定方法をこっちが知らないといけない。そんなのいやだ。
具体的な設定方法を教えないと学生はやらないし…..

Illustrator でsine波を描く方法

このAdobe のページから;
1)求めるサイン波の長さの水平直線を描く(勿論後から変更可能)
2)メニューバーの 効果 パスの変形 ジグザク を選ぶ。

ジグザグウインドウのオプション;
20141017sinewave-1
大きさ:サイン波のpeak-to peak(振幅の2倍)を設定する
折り返し:周期の数だが、1で1周期、2で1と1/4周期、3で2周期、….  プレビューにチェックをいれて確認する
ポイント:滑らかに でサイン波、直線的に で三角波になる
以下は折り返し3にした例である。このままだとオブジェクトは要素に分割されていないので;
3)メニューバーの オブジェクト から アピアランスの分割 を選ぶ。
20141017sinewave-2
こうすると幾つかの要素の集合としてのオブジェクトになるので加工しやすくなる。
20141017sinewave-3しかし、このままだとアンカーポイントがピーク/ボトムにしかないので加工しにくい。そこで;
4)メニューバーの オブジェクトから パス アンカーポイントの追加 を選ぶ。
20141017sinewave-5

これで、角度でいうと0度、180度の部分にアンカーポイントが加わる。
5)あとは、ハサミツールで切断したり、大きさを変えたり自由に変形する。

また別の方法だが、うまくファイルを開いてくれないかもね。
ぴょぴょぴょ? – Linuxとかプログラミングの覚え書き から丸ごとコピー

N=100;
SCALE=50;
PI=3.14159265;
for (t=0;t<N;t++) {
line = activeDocument.pathItems.add();
y0 = Math.sin(t/N*2*PI)*SCALE;
y1 = Math.sin((t+1)/N*2*PI)*SCALE;
line.setEntirePath([[t,y0],[t+1,y1]]);
line.filled = false;
line.stroked = true;
line.selected = true;
}

をテキストファイルとして保存し、拡張子を.js にしておく。つまりsin.jsですな。
イラストレータを立ち上げ、新規ファイルを作成し
ファイル → スクリプト → その他のスクリプト で作成したsin.jsを選ぶと、左上にサイン波が出てくる。1周期分だ。
20130807Illustrator_sine_wave

こんな感じですな。
理由がわからないが、作成したファイルを別フォルダにいれたりすると読み込まれない。6、7行目のsin をcos に置き換えるとcosine波が描けるはずなのにsin波になっちゃう。どうやらillustrator のほうで一度読み込んだファイルが消去されていないのか…まだわからない。
Illistrator を再起動しただけではだめだった。Mac を再起動したら問題はなくなった。
このスクリプトは100本の直線を、始点と終点のX、Yを指定してつくるものだからバラバラにできる。100ヶのオブジェクトの集合だからグループ化しないと悲惨な目に遭う。
このファイルをどこに置いたらいいんだろ?わからないから~/users/Application Support/Adbe/Adobe Illustrator/にフォルダを作って置いた。また忘れちゃうんだろうな。バージョンを上げるとなくなっちゃったり…..

Backup用HDを変更した

バックアップ用HDを変更した。Mac Pro なので、HD用のBay が4つある。
起動ディスクであるHDはbay1に入れた1TBのHDで140GB使っている。このバックアップとして、TineMachine 用HDがあって、2TBの容量で2013.1.3から今日までが保存されており1.6TB使っている。こいつはいっぱいになったら古い方から消えていくことになっているはず。もう一つ2TBのHDを入れてあって、CarbonCopyCloner(CCC) のバックアップ先とし、バックアップを作成した。今日作成したので使っているのは本来の起動ディスクであるHDとほぼ同じ容量を使っていることになる。もう一つのbayに1TBのHDを突っ込んであり、こいつには4月1日から本日(8月5日)午前1時現在までのバックアップがある。このHDはいずれ消去されることになるが、トラブルが生じたときのため、しばらくこのままでおいておく。850GB使っている。
単純計算するとTimeMachineだと半年で10倍に増える。
まだ、Server.app とシステム環境設定からのTimeMachineの設定の違いがよくわかっていない。Server.appからは本体だけでなくほかのHDのバックアップができるのはわかるが、両方同じ設定にしたらどうなんだろ。現在はシステム環境からの設定にしているがこれだと復元ができないのかな?
まだ今週はいろいろ使うユーザがいるから、来週からはじまる夏休みにまたいろいろいじってみることにする。