IMAP-IDLEへの対応ソフトは少ない?


前回Dovecotをインストールした際にThunderbirdでIMAP-IDLEのテストを行ったが、ふと他のソフトの対応状況が気になった。

プッシュ配信が出来ればクライアント側は定期チェックが不要になり、サーバ側も定期チェックへの応答が無くなる分負荷は減る。(まぁ絶え間なくスパムメールが来てたら定期受信の方が頻度が少なくなるとも言えるけど・・・)
またリアルタイム性が出て、すぐにメールが読めるというメリットがある。
是非とも対応していて欲しい。

まずThunderbirdだが、こちらはかなり前から対応している様子。
設定の中の詳細項目にサーバが対応してたらIDLEコマンドを使うというチェックボックスがあり、デフォルトでチェックが入っている。
サーバ側が対応していれば、定期受信をしない設定にしていてもオンラインなら新着が届けば受信してくれる。

あと、対応が確認できたのがMicrosoftのWindowsメール。
こちらも対応できているようで、定期受信をしない設定にしておいて他のPCからメールを送ってみると、すぐに着信を知らせるサウンドがなり受信していた。

他はと言うとなかなか対応しているという情報が得られない・・・

で、私が自宅で使用しているジャストシステムのShuriken 2008だが、残念ながら対応できていない様子。
そもそも設定に定期受信をしなくする設定がない。必ず定期受信が動いてしまう・・・
とりあえずジャストシステムのサポートに問い合わせてみた。
え~ジャストシステムのサポート担当の方、変な問い合わせをしたのは私です。お手数をおかけしました。 m(_ _)m

ジャストシステムのサポートはなぜか電話しかない。
今時Webからの問い合わせなんかもあっていいような気はするが、どこを探してもなかったので諦めて電話することに。
本日の14時過ぎから電話をかけ始める。ご多分に漏れず話中でつながらない。
十数回かけ続けるとようやくつながる、がサポート担当が混み合ってるので折り返し連絡しますという・・・ 待ち時間は1~2時間らしい

電話番号を伝え待つこと1時間、非通知で電話がかかってくる。
出てみるとジャストシステムのサポート担当の方。
率直に「IMAP-IDLEに対応しているのか」「定期受信をしない設定にしてIDLEで通知を受けるような設定は出来ないのか」聞いてみると、担当の方はIDLEコマンド自体知らないので分からないとのこと。
また定期受信をしない設定については詳しく調べて再度電話をもらえることになった。

更に待つこと2時間、再び電話がかかってくる。
先ほどの電話の際に非通知だと呼び出し音が鳴らないので番号通知でかけて欲しいと言っておいたので、今度はちゃんと番号通知でかかってきた。
で、結果はと言うとShurikenでは定期受信で新着を受け取る設定しかできないと言うことだった。
残念・・・(まぁ予想していた通りの結果だけど)
是非次期バージョンでは対応して欲しい。
頑張れジャストシステム!無料で配られているソフトに負けるな~

Dovecotのインストール


POP3/IMAP4サーバにDovecotの採用を決めたので早速インストールを始める。
まずはDovecotのホームページからソースをダウンロードしてくる。
私がダウンロードした時点の最新版は v1.1.7 でした。

ソースを展開してconfigureを行うが、ここでPostgreSQLに対応させておく必要がある。
# ./configure --with-pgsql
続けて
# make
 
# make install

で、インストール完了。
続けて実行用のアカウントとグループを作成する
# pw groupadd dovecot
# pw useradd dovecot -g dovecot -d /nonexistent -s /usr/sbin/nologin

そして設定ファイルの編集。
/usr/local/etc/ にサンプルファイルがインストールされているのでコピーして使う。
# cp dovecot-example.conf dovecot.conf
設定ファイルの中で変更したのはプロトコル関係が主。
#protocols = imap imaps
protocols = imap pop3
 
#disable_plaintext_auth = yes
disable_plaintext_auth = no
 
#mail_location =
mail_location = maildir:~/Maildir
 
#ssl_disable = no
ssl_disable = yes

とりあえず実験中なのでSSLは非対応とし、IMAPとPOP3を有効にした。

設定が終わったのでDovecotを実行する。
# /usr/local/sbin/dovecot
で、PCの方からPOP3とIMAP4の両方でアクセスしてみてる。
無事受信できているので、とりあえずインストール完了。

ついでにIMAP-IDLEも試してみたい。
PC用のメールソフトでIDLEコマンドに対応していそうなのがThunderbirdなので、こいつにアカウントを設定してやる。
定期受信をしないよう設定しておき、別のPCからテストアカウントへメールを送る。
Thunderbirdを見ると受信箱に新着がすぐに入ってくる。
ちゃんと動いていそうだ。 (^-^)

MRAはDovecotにする事に


Maildir形式でPostfixは動き出した。
しかし、現時点でまだPCからメールを受信することが出来ない状況なので、そろそろMRAを入れて受信できるようにしないと実験が進まないのでMRAをインストールしよう。

これまではQpopperを使ってPOP3を提供してきたが、今回はIMAP4も提供したいのでこちらも切り替えることにする。
IMAP4はUW-IMAPを実験的にインストールしたことはあるが、今回はちゃんと選定しよう。

で、選択肢は何があるかというとOBATA Akio氏のThe IMAP Conneco-chan良い比較表を見つけた。

選定にあたっての条件としては

  • POP3とIMAP4が両方使える
  • Maildir形式に対応している
  • Postfixと認証連携が出来る
  • PostgreSQLでバーチャルホストのユーザー管理が出来る
  • コメントをくれたito氏の期待に応えIMAP-IDLEでiPhoneにプッシュ配信できる

と行った所。

最後の条件の所だが、iPhoneの仕様を色々調べてみるとiPhone自体には普通の携帯メールのようなキャリアのメールサーバ側から端末へメールを送りつけて着信させるプッシュ配信の仕組みは無いようだ。
SoftBankが提供するメールアドレスについてはアプリの方で何らかの対応をしてプッシュ配信っぽく見せている様子。
米国YahooとmobileMeに関してはIMAP-IDLEを使ってプッシュ配信をしている様子。

IMAPもPOP3同様定期的にクライアント側からサーバ側に「新しいメール来てない?」と問い合わせを行うことで新着情報を得ている。
PCならそれでも良いのかもしれないが携帯だと定期的にパケットが出るため通信費が嵩む上、通信を行うと電池の消費が進むことになり面白くない。

そこで登場するのがIMAPの拡張機能であるIDLEコマンド。
クライアント側は受信等を終えて待機状態にはいる時サーバに対してIDLEコマンドを送ると、サーバ側は新着メール等サーバ側の情報に変化があった時通知をしてくれる。
クライアントは通知を受けたら受信等の処理を行うという手筈になっている。
これなら新着メールが来なければ通信は発生しないのでパケット代も掛からないし電池の消費も抑えられるという仕組み。
なかなか良く出来てる。

これはPCの方でも結構有効になりそう。と言うのも定期的に「新しいメール来てない?」と問い合わせを受けるサーバ側はその度に処理が動くので負荷が発生する。一人や二人なら良いが大人数になるとそれなりに大変。
みんながIDLEを使えば定期的に負荷が発生することは無くなり、トータルとして負荷軽減になりそうかなと思っている。

と言う訳で、上記の条件に照らし合わせて今回採用するMRAはDovecotに決めた。
新しい物好きというのもあるが、後発であるだけに機能が洗練されていてセキュリティーへの配慮もされているように思われる。
そして、設定ファイルの記述が比較的簡単そうだというのも選定理由。
ただ新しいだけに日本語での情報が少ないのが難点だが、まぁなんとかなるでしょうって事で採用決定。

頑張ってインストールしなければ・・・

MR検査デビュー決定


事の始まりは14日の日曜日。
朝から喉が若干腫れた感じがしていた。
まぁ風邪でも引いたかなぁ位に思ってました。
昼頃に買い物に出かけたらチョット寒気がしたので、ついでに風邪薬を買ってきて飲むことにした。
徐々に寒気が酷くなり熱を計ると37.4℃・・・
夜になるにつれ熱は上がり続け、最終的には39.5℃まで上がった(もっとあったのかもしれないけど計った中ではここまで)
結局一晩中高熱にうなされ続けることとなった。

深夜、大量の汗をかき気持ち悪くなって目が覚める。
とりあえず着替えてベッドに戻ると布団が汗で濡れていて、まるで水を撒いたかのようになっている。
いくら熱で朦朧としていてもそのまま寝る気にはなれず、押し入れから布団を取り出しフラフラしながら布団カバーを掛ける。
ふと時計を見ると2時過ぎ・・・なんでこんな夜中に熱でフラフラしながら布団カバーを掛けているんだろうと虚しさを感じる。

月曜の朝になっても38℃以上熱があるので、とりあえず会社を休むことにして上司へ電話をかける。
ここでふと思う。喉は腫れて痛い、高熱も出てる、しかし鼻は至って普通、咳やくしゃみも出ないので風邪とは違うような・・・
なんとも変な感じなので近所のお医者さんに診てもらいに行く。
診察を受けると、扁桃腺は腫れてるけど肺の方は問題ないので普通の風邪とはチョット違うみたい。
もちろんインフルエンザとも全く違う。
結局の所、過労気味で体力や免疫力が弱っていた所に風邪のウイルスが扁桃腺について炎症を起こしたんでしょうって事で、注射を打ってもらい薬を処方してもらって帰ってきました。
いやぁ~子供の時以来久々にお尻に注射打たれちゃいました・・・イタイ (ToT)

お医者さんの薬の威力はたいしたモンで、熱は下がり始め喉の腫れは徐々に引き始めた。
しかし、一晩中熱にうなされてたんで体力的にツライ・・・ってことで月曜は一日中寝て過ごすことに。

火曜になっても熱は下がりきらないのでもう一日会社を休む。
昼頃には熱は微熱程度になり扁桃腺の腫れも引いてきた。
し、しかし首のリンパ節が腫れたままで戻らない・・・
鏡を見るとリンパ節ってここにあるんだぁ~ってハッキリ分かるくらい腫れてる。
触ってみるとチョット痛い。
と言う訳で再びお医者さんへ行った所、またまたお尻に注射打たれちゃいました。
昨日は左で今日は右・・・
で、明日の朝も診せに来いとのこと。
普通なら扁桃腺の腫れが引けばリンパ節の腫れも一緒に引いてくはずなのにリンパ節だけ腫れてるのはおかしいので、明日になっても腫れが引かないようなら耳鼻咽喉科を紹介するからそっちへ行きなさいだって。

なんかチョット大変なことになってきたみたい・・・
で、とりあえず会社へ連絡して水曜も朝病院に行って診てもらって、いつから社会復帰できるか連絡することにする。

水曜はお医者さんの診察開始時間に合わせて朝から病院へ行く。
診察の結果チョットは腫れは引いてきたみたいだけど、まだまだ腫れてるし左右で腫れ方が違うのが気になるから耳鼻咽喉科へ行きなさいって事になり、紹介状なるものをもらってしまった・・・
生まれて初めてもらったお医者さんの紹介状、大げさ度が増してきた。
お会計を済ませて、その足で紹介された耳鼻咽喉科のお医者さんへ向かう。

耳鼻咽喉科のお医者の見立てでは、扁桃腺の腫れは引いてきてるので問題ないが、やはり首の所の腫れが気になるとのこと。
生まれつき膿が溜まる袋みたいモノを持ってる人がいて、炎症の結果そこに膿が溜まってしまうことがあるとかで、今すぐ手術をして取らなきゃいけないとかいうモノではないけど、もしそうなら今後また同じようなことが起きる可能性があるのでちゃんと検査をしておいた方がいいらしい。
で、検査はと言うとCTだのMRIだのと大げさな検査装置がいるらしい・・・
そんなモノは町の診療所にはないので大きい病院を紹介するから、そっちで診てもらいなさいだって。
大げさ度更にパワーアップ!

で、結局ウチの近所にある大学病院の紹介状をもらい耳鼻咽喉科を後にする。
一旦家に帰り着き、大学病院のホームページで受付時間を確認すると既に終わっている。
時間はお昼前、このまま家にいてもする事が無いので午後から会社に行くことにした。

本日、木曜日はまたまた朝から病院へ。
今度は大学病院!
前を通ることはあっても入ったことは一度もない。どんなとこなのか興味津々で受付時間に合わせて出向く事に。

まず行くと総合受付って所で紹介状の有無などを確認される。
続いて初診受付って所でカルテの作成。さすが大学病院、電子カルテシステムとなっていて健康保険の情報とか名前・住所なんかを何人かの職員の人が手分けして入力してる。
初診受付が終わると書類の入った袋とポケットベル(厳密には呼出受信機と呼ぶらしい)を渡され、診療科毎の受付へと行く。
ここまでで時間は小一時間、道のりは遠そうだ・・・

耳鼻咽喉科の受付へ行って書類の入った袋を渡すと問診票を渡されて記入するように言われる。
問診票を記入して受付に出し、しばし廊下のソファーで待つ。
30分ほど待っているとポケットベルが鳴り出す。ポケットベルのディスプレイを見ると中待合に入って待つようにと書かれているので、診察室の前の中待合と呼ばれる場所へ移動して更に待つ。
更に待つこと15分、ようやく診察室へ入るようにアナウンスがあったので指定された診察室へ。

担当してくれたのは女医さん。
最初はマスクをしていて分からなかったけど、マスクを取るとけっこうカワイイ (*^_^*)
で、症状の確認など一通りの問診を終えると、まずは扁桃腺を診る。
続いて鼻から内視鏡を入れて喉の状態や扁桃腺の裏っ側まで見られてしまう・・・ イヤ~ン恥ずかしいぃ (^_^;
更には口の中に指を突っ込んできて舌の根元あたりとあごを色々触ってる・・・ 先生ったらカワイイ顔してダイタン (^_^;;
結局見立てとしては前日行った耳鼻咽喉科の先生と同じく、膿が溜まってる可能性もあるので検査をしましょうって事になった。
MRIは予約制で時間が掛かるので、とりあえず今日は超音波エコーで診ておいて後日MRIで診ると言うことに。

超音波エコーで診るとどうやらリンパ節が腫れていそうだとのこと。
ただ膿が溜まっててもエコーに出にくいらしくMRIはMRIで受けることとなった。
で、リンパ節の腫れはもう一週間ほど抗生剤を飲んでみて引けば問題ないし、もし引かないようならもう少し詳しい検査をしましょうと言うことに。

クリスマスイブにカワイイ女医さんと会う約束をして本日の診察は終了・・・ (^_^;;;

MRIの方は年明けに予約が取れ、生まれて初めてMR検査ってやつを受けることになった。
何でもゴッツイ機械で、体を輪切りにして見られるらしい。
どんなモノなのかチョット楽しみ。

PostfixをMaildir形式に変更する


とりあえずPostfixのインストールを終え、PostgreSQLとの連携もうまくいっている様子。
次なる野望はメールスプールをmbox形式からMaildir形式への変更。

なぜ、mbox形式からMaildir形式に変えるかというと、mbox形式のメールスプールは一人のユーザーのメールを一つのファイルに纏めて書き込んでいるため、たくさん溜め込むとファイルの容量が肥大化してしまうのが一番の問題。
POP3等で受信を始めるとMTAとの競合を避けるためMRAがメールスプールのファイルのコピーを作り、コピーしたファイルからメールを受信させるという動きをする。
この時、コピーするファイルが大きいと時間が掛かり、場合によってはタイムアウトが発生してしまう。
メールソフトの定期受信の時間間隔が短いと、コピーしたファイルの書き戻し(削除されたモノ等の整合性を取ってる)作業が間に合わずデッドロックを起こしたりすることがある。
今どきの添付ファイルが付いていたり、HTML形式で画像が添付されていたりするメルマガが大量に届くメール事情を考えると、一考の余地がある。

Maildir形式にすると何が良いのかというと、まず一番はメールスプールは一通のメールに付き一つのファイルが作成される。
たくさんメールを溜め込んでも溜まったメールの分だけファイルが作成されるだけで、一つのファイルの容量はそんなに大きくはならない。
また、MTAが受け取った新しいメールは新しいファイルで保存させるため競合を気にしなくなるので、変にファイルのコピーを行ったりしなくなり処理が高速で安定してくる。
IMAP4を運用するにあたってもmbox形式よりは親和性が高いので安心して利用できる。
と言うのが私の私見です。

と言うことでメールスプールの形式をMaildir形式へと変換することにする。
まず初めにやることは、現状のmbox形式で貯まっているメールをMaildir形式にコンバートしてやること。
ググってみるといくつか有名な変換スクリプトがあるみたいで、今回はmbox2maildirというのを使うことにした。
まずはmbox2maildirをこちらから入手してサーバーに保存。PerlのスクリプトなのでPerlのパスが自分の環境と違っていれば修正し、実行権を付けてやる。
続いて変換するユーザーアカウントでサーバーへログインして実行してみる。
% /usr/local/src/mbox2maildir/mbox2maildir.pl /var/mail/xxxxx ./Maildir/
ここで注意しなければいけないのが、出来上がったメールスプールファイルのパーミッションが 644 になっていて、他人からも覗けてしまうこと。
なのでパーミッションを変更してやる。
% chmod 600 ./Maildir/new/*
これでコンバートは完了。
後はPostfixの設定ファイルを書き換えてやり、新たに受信したメールもMaildirの方へ保存するようにする。
/etc/postfix/main.cf を以下のように書き換える。
#mail_spool_directory = /var/mail
home_mailbox = Maildir/

そしてPostfixに設定ファイルを読み込ませる。
# /usr/sbin/postfix reload
これで、メールを送ってみて Maildir/new/ にファイルが増えれば設定成功なので試しに送ってみる。
無事メールが届いている様子なので、次なる挑戦はメールをPCで受信することかな。

← 前のページ次のページ →