だいぶ前にちょっと書いてたmobileimapを入れて使ってみた。
確かに良い感じだったのだけど、自分の必要な機能がなかったのでどうしたものか。
mobileimapは、ユーザとパスワードをわたして起動して使う。そして、そのまま独立したHTTPDとして起動したままにして使うのだ。
だからそのポートに接続すれば、認証無しに使えてしまうし、他のユーザに切り替えることも出来ない。
普通のWebメーラーのように、接続後にユーザとパスワードを入れてログインして使うようなパッチが無いか、探してみたのだけど見つからなかった。
しかたないので改造しようと思い、ソースを眺めてみた。
imapd経由なので、起動時だけでなく操作の前に毎に認証するようになっているため、ログイン時にユーザ名とパスワードを取得するように改造すれば良いだけに見えた。
しかし、セッション管理しないといけなくなるため、そこがちょっとめんどくさい。
Rubyで書いてあるから、Rubyのセッション管理方法について調べないといけないので。
あと、なぜこういう仕様にしたのか、ということが書いてあって、携帯からユーザ名やパスワードを入れるのは大変でやってられないから、ということだった。
確かにそうだなあ、と思う。
で、数字だけだったらどうだろう、と考えた。数字だけならそのまま打てばよいだけだから、多少長くなってもそれほどうっとおしくないだろう。
つまり、
aAbB-012
がパスワードだったとすると、
6533663413161718
という数字に変換したもをパスワードとする。
これはASCIIコードから制御コード分の32を引いた数字。
同様に、ユーザ名も数字だけのコードに変換してしまってもよいだろう。
で、ユーザ名やパスワードの入力が数字だけだった場合、このコード変換されたもの、として文字に変換し、それからログインを試行する。
とか考えたが、まずはRubyに慣れないとなんともならんな…
(関連)