Linux 上の UTF-8 でファイル名がエンコードされたファイルを
Windows に sftp で転送をできるかを調べてみた。
サイトマネージャの高度な設定に「Use UTF8 on server if」という項目があった。
しかし Force にしても化けた。
詳細設定の SFTP に「SFTP4かそれ以上では UTF-8 を使用しない」という
項目があったので、オフにしたけど化けた。
OpenSSH の SFTP はソースを眺めたところ v3 らしいが、これが v4 になれば
大丈夫なのかなあ?
ファイル名エンコードで UTF-8 を選択したところちゃんとデコードして表示された。
しかし、これシェアウェアなんだよなあ。
Site Manager に設定が見当たらずにダメかと思ったら、View メニューに
Encoding という項目が!
これを Unicode にしたところ見事にデコードして表示された。
とりあえずこれを利用しますかね。
なるほど。
あらためて考えると、C++ でいうと以下のようなことをやりたいわけでした。
class Hoge {
private:
static void base_func() {}
public:
static void funcA() { base_func(); }
};
FAQ を眺めてみたところ、やりたいことは
private_class_methodで実現できそうでした。
module Hoge
def base_func
end
module_function :base_func
private_class_method :base_func
def funcA
base_func
end
module_function :funcA
end
Hoge::funcA # => OK
Hoge::base_func # => エラー
mbox と Maildir に対応している IMAP サーバが欲しかったんだけど、
Dovecot が対応していると知ったので試してみる。
*
0.99 or 1.0-test or dovecot-stable
どのバージョンを入れればいいのか分からん…。
Wiki を見ると
mbox と Maildir の同時使用は 1.0-test で実装されているらしい。
でもって、dovecot-stable は 1.0-test から不安定な機能を外したものって
感じのようだ。ということで、まず 0.99 は今回の目的にはダメみたい。
*
CVS
dovecot-stable が namespace に対応しているか調べるために、CVS からソースを取得。
CVS の module は 1.0-test は dovecot、dovecot-stable は dovecot-stable の
ようだ。0.99 は CVS には無いのか?
それにしても、何で module が分かれているんだろうか。
*
dovecot-stable
dovecot-stable のソースを見ると、namespace 関連は入っていそうな感じ。
でもって、
ML アーカイブを見ると
Debian パッケージの testing/0.99.20050712 は dovecot-stable らしい。
| version | deb | namespace | keyword support |
| 0.99 | stable | × | ? |
| 1.0-test | - | ○ | ○ |
| dovecot-stable | testing | ○ | × |
とりあえず dovecot-stable を入れることに。
*
dovecot.conf
まずは protocols に imap を設定して起動。
protocols = imap
telnet でアクセスしてみるもログインできず。しばらく悩んだが、パスワードを
間違えていただけであった(^^;
*1
次に INBOX の select してみるも失敗。
ログを見るとロックファイルの生成に失敗していたので mail_extra_groups を
設定してみる。
mail_extra_groups = mail
これで telnet から試した限りは良さそうだったので Windows から Thunderbird で
アクセスしてみる。が、Plaintext authentication is disabled とエラー。
デフォルトでは localhost 以外からは SSL/TLS なしの PLAIN でのアクセスは
禁止となっているようだ。ということで、SSL を使うことに。
protocols = imaps
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
これで無事 Windows からもアクセスできた。
*
namespace
以下のように設定してみる。
namespace private {
separator = /
prefix =
inbox = yes
location = mbox:~/Mail:INBOX=/var/mail/%u
}
namespace private {
separator = .
prefix = INBOX.
location = maildir:~/Maildir
}
これで Courier IMAP ライク、ただし INBOX は /var/mail/user って感じに
利用できた。
*1: ふだん SSH でしかアクセスしないから、パスワードは滅多に入力しない。