2018年8月10日金曜日

cyrus imap 3 (その2)

Androidのカレンダーからだと、同期/書き込みもちゃんとできているみたいだけれども、Thunderbirdからだと、どちらもうまくいかない。
ということは、問題はThunderbird側にあるということか???

--
おお、実は Windows10標準のカレンダーで、CalDavが使えている!!

アカウントの追加で、Outlook/Exchange/Google/iCloudの有名どころしかでてこないので、てっきり汎用のCalDavは使えないものと思っていたが、iCloudを選択してダミーのアカウントを作成してから、サーバー情報を再設定してやれば、普通に使えるようだ。

気をつけなければいけないのは、カレンダー単位でなく、アカウント単位で登録のようなので、カレンダーが複数同じアカウントにあった場合、不要なカレンダーはいちいち非表示設定にしなくてはいけないようだ。(まあ、この辺はCalDavサーバー側の設定と運用でなんとかしろということか。)

--
Thunderbirdで cyrusのカレンダーのurlを指定するときは、
https://.../dav/calendars/user/(userid)/(calendarid)
の形で指定するわけだけれど、このcalendaridが、実はカレンダー名ではないらしい。
Alt という名前のカレンダーを作成すると、.../(userid)/Alt ではアクセスできなくて、
.../(userid)/5bb***5a-6**0-153371***4504-4170**
といったURLを指定する必要がある。
で、5bb***5a-6**0-153371***4504-4170**はどうやって見つけるのかというと、サーバーのディレクトリを見ればなんとなくこれだろうというのは推測がつくのだが、なにか簡単に判る方法というのがあるのかどうか???
-> calDavの管理画面で、[download]のリンクを見れば、そこにこのidが使われているので、とりあえず[カレンダ名]->calendaridの対応は判るようだ。

2018年8月9日木曜日

cyrus imap 3

ずっと、cyrus-imapd の 2.4 を使ってきたのだけれど ( 2.4の次は2.5だけれど、敢えて使いたくなるような新機能がなかったので)、久しぶりにバージョン情報をみると、最新バージョンは、3.0.7ということらしい。

まあ、次にインストールするときは、3系列かということでリリースノートを読んでみる。
どうも、calDavやらcardDavやら、共有カレンダーとか連作先といった機能が強化されているらしい。(もっと読むと、実際には2.4.xの頃から導入されていたらしいのだが、興味がなかったので気に留めなかった。)
そういえば、Office365にも、そんな機能があったけかな、と Office on the Web で試してみると、どうやら 同じ機能とはいっても Office on the Webの方は、Micr〇softの提供しているカレンダサーバ以外だとまともには機能しないらしい。(例によって、カレンダのインポートはできてもイクスポートは面倒くさいとか、)

で、thunderbirdのカレンダー機能で試してみるのだけれども、これもいろいろ癖が強くて今一つ期待どうりに動いてくれない。
いや、確かに一つはcyrus-imap上のcaldavで動いているのだけれど、いろいろ設定をいじったあげくの結果なので、どこをどう設定したらこうなるのか、うまく再現できないのだ。
cyrusのマニュアルによれば、カレンダはクライアントが最初に接続したときに自動的に作成されるように書かれているのだが、どうもこれがうまくいっていない気がする。あらかじめサーバー上で作っておいたカレンダにあとからクライアント側で接続する形でないとダメっぽい。( いや、うまくやれば本当はできるのかもしれないけれど。)

じゃ別のcalDavクライアントではどうかと、webで検索してみると、windows上だと、eMclientというのがよさげなのでこれを試してみる。thunderbirdだと、イベントを書き込む段階でサーバーに接続しにいってそこでエラーになるパターンが多かったので、とりあえず、イベントを書き込み時点ではエラーがでないので、「あ、これいけるじゃん」と思ったのだけれど、実はこれはぬか喜びで、こちらは「サーバーと同期」としないとサーバーに書き込みにいかないようで、ローカルに保存しているだけだったり(ま、それならエラーにならなくて当然)、どれも癖が多い。

Androidの定番のソフトでも多少の違いはあっても、各段によいということはなくて、やっぱり iOSがデファクトスタンダードっぽく、iPhoneを用意しないとまともな動作検証は難しいみたいだ。

たぶん、読み込みは、icsという標準のフォーマットがあってほぼ確立していても、書き込みの方はまだプロトコルとしてあまり成熟していないのだろう。