2012年9月24日月曜日

インポートしてみた

家庭内事業仕分けの一環で不要な出費を減らす方向で、無駄に金を払っていた、はてなダイアリーのデータを全部bloggerに移動して(全部っつっても大した量無いけど)有料オプションを解約する事に。

とりあえずデータはMovableType形式でエクスポートして、一応かつてのデファクトスタンダードなわけだしそのままbloggerにインポートできるのかと思ったら全然無理でしたorz

ググると変換サービスを作ってくれている人が!感謝感謝で使わせてもらいます。そしてわかりにくい階層を辿りインポートを行う。

行う・・・。

全部今日の記事になっちゃったよorz

んんー?とりあえず中身を見ると・・・ああ・・・日付の形式の問題ね・・・。この辺はやっぱり難しいねぇ。

結局ブログの言語を日本語から英語にしてインポートしたら正常に読み込まれましたよっと。これで心置きなくはてなを解約という事でプチっと止めを刺しました。

次は何を仕分けるかな~

2012年9月14日金曜日

dovecot + Mail.appは相性が悪い?

自前サーバの話。新しいdovecotの環境に移行してもらって、今回からIMAPの使用を奨励する形にしたら・・・MacのMail.appを使っているのからメールを削除できなくなったという苦情が。

調べてみると、どうも怪しいことになっている。問題は2点ある。

まず一つ目はフォルダー名。dovecotはMaildirを使用する場合にIMAPからフォルダを作成すると階層を表す記号に"."を使ったフォルダをルートのMaildir直下に作成する模様。そしてMail.appがメールアドレス名(xxx@example.com)を含めたフォルダを作った為、実際のフォルダとしてはそれっぽいものが作られてはいるけど、dovecotが間違えて解釈するためにIMAP的には意図したフォルダが実際には無い様に見えるという状態になってしまうらしい。

そして二つ目がインデックス。どうもdovecotはインデックスファイルを作成しておりそれを優先的に使用してIMAPのレスポンスを返すらしい。なので実際のフォルダ構成とこれが食い違うとエラーになってしまう模様。

とりあえずここまでは状況からの推測ですが、また間違ってはいないと思います。根本的にはMail.appの問題というよりフォルダー名として"."を指定された際にちゃんとエスケープしないdovecotの実装に問題がある気がするけど実際それをどう回避するかという話になる。

結論から行くと今回はdovecotのパッチ作るのも面倒なのでとりあえず後ろ向きな方向でThunderbirdに移行してもらった。 もちろん使い手が意図的に"."の入ったフォルダーを作成したらまた同じことになると思われるので恒久対策ではないけど、管理者がMail.appを常用しておらず挙動が読めないので今後のサポートを考えると事故の少ない方向に振った次第。身内しか使っていないからこその対応ですが。

ただし二つ目の様に、すでに不整合が起きているのでThunderbirdにしても特定操作がエラーになってしまうのは変わらない。最初よくわからないのでsshでつないで手動でフォルダをリネーム or 消してクライアントから読み直せばokダロっと思って試してみたのだけどindexとの不整合が発生し

Mailbox doesn't exist XXXXX

こんなエラーが出てフォルダーへアクセスする際にダメでした。インデックスファイルらしきものを削除して再構築を促してもNGだったりしたのが非常に謎ですが。

とりあえずは後ろ向きな解決方法で不整合が起きたフォルダは大本のフォルダはssh経由でサーバから手動で削除し、メーラから同名のフォルダを作りなおし、クライアントから再度削除していく事によって整合を保つことが出来た。またゴミ箱(Trash)等クライアントとして特殊なフォルダはアプリ側ではねられるので、ssh経由で手動でMaildirを一つずつ作成しなおした。

というところで一応Thunderbirdからは問題なくいけるようになったんだけど、dovecotもMail.appも挙動を理解していない為に今回の様な対応になったので一度これは再テストしてみた方が良さそうという事で今度追試を行います。