携帯の料金が常時1万を超えるようになってから早1年。周りと話していると「そりゃ高くねーか?」と言われるし、たしかにそんなに電話をかけることもないから通話代が上がることもない。これは基本プラン+アドオンのサービスを見直そうとWebを睨めっこし、白羽の矢がたったのが、PCサイトビューワー。1年前、今の携帯を買ったときはいろいろと夢が広がってたけど、この1年の携帯サイト対応は目まぐるしく、Google、Mixiなど相次いで携帯対応しちゃうもんだから、PCサイトビューワーでアクセスするのは自宅のWebメールくらいなものになっていた。
それじゃあ自宅のメールサーバも携帯対応してしまえば、PCサイトビューワーはとりあえず必要なくなるってなもんで、いろいろ調べてみたら、ありました。携帯電話用のIMAP対応メールサーバ。
はい、ここから本題。
「mobileimap」は、au や i-mode などの携帯電話からIMAPサーバ上のメールを読むことができます……ということで、IMAP派のうちにはピッタリ。Mac OS X Serverが採用しているCyrus IMAP Serverにもしっかり対応しています。mobileimapはHTTPサーバを内包しているということで、Mac OS X Serverで動くかどうか不安でしたが、Rubyを使って開発されているということで、RubyがプレインストールされるMac OS X Serverなら大丈夫かと。
早速こちらからダウンロード。インストールや稼働の方法は、作者の方がUNIX USER誌に寄稿した「mobileimapで携帯メール快適生活」という記事が詳しいです。Rubyは最新バージョンが良かろうと思い、「Rubyインストールガイド - Mac OS X」に従い、DarwinPortsを使ってインストールしました。
さて準備が整ったところで、mobileimapをコンパイル&インストール。おもむろに起動させてみるけど、当然つまずく。いろいろ調べてみると
mobileimap -u [USERNAME] -d --dump-config > ~/.mobileimaprcで、ユーザディレクトリのルート直下に.mobileimaprcができるので、それを編集する
ここまでやったら、以下のような起動コマンドを使う。
sudo -u [USERNAME] [mobileimapのフルパス] --mobileimaprc=[.mobileimaprcのフルパス]
これで起動完了。このコマンドはシェルスクリプト化して、サーバが起動したと同時に動くようにしておく。
じゃあ携帯でアクセスしてみると、動きました! …が、日本語のサブジェクトが化けている。MIMEヘッダがうまくデコードされていないみたい。この問題を解決するために、かなり苦しい時間を費やしましたが、結論だけ言うとmobileimapのソース(mobileimap.in)を若干書き換えてリコンパイルしました。書き換えた箇所は、require 'kconv'の後に
module Kconv def self.toeuc(s) ::NKF.nkf('-exm0', s) end def self.tosjis(s) ::NKF.nkf('-sxm0', s) end def self.tojis(s) ::NKF.nkf('-jxm0', s) end end
と入れました。このネタ元はこちら
はい、これでMIMEデコードもばっちり。かくして、携帯から自宅メールサーバにアクセスできるようになったわけです。