Nov 18, 2009

POPからThunderbird + Gmail + IMAPに乗り換えたい

今まで「IMAPとはサーバ上だけにメールを置いておく物なのだ」と思い込んでたので、POPから移行するのに少し抵抗があったんだけども、そうじゃなくてIMAPはPOPを包含するものでありPOP的な運用もできるのだと知って、それならいっちょ本気出して移行してみるかなと思って移行してみた。

会社マシンのThunderbirdでメールに付けたタグをどうにかして自宅のマシンからも利用できるようにしたい、という事を前々から思っていた。というのも、自宅ではプライベートのアドレスに来たメールをGmail経由でBecky! 2で受信(SPAMフィルタ代わり)して仕事メールは基本的に閲覧のみ、会社ではプライベートのアドレスに来たメールを仕事用アドレス宛に転送してThunderbirdで利用してたんだけれども、Thunderbirdを使い始めてみるとタグが便利すぎて(Tag Dialog万歳)、アドオンのバグ報告を受信したらとりあえず「未処理」「bug」のタグを付けて、処理したら「未処理」タグだけ外す、というやり方でバグを管理するような運用が染み着いてしまいまして。気がついたら、自宅のBecky! 2ではどのメールが未処理なのかさっぱり分からなくなってしまったんですわ。

まあタグで運用しなくてもフォルダ分けでもいいかなって思うんだけど、それでもとにかく家と出先とで同じフォルダ構成でメールが見えてくれないと困るわけで。じゃあIMAPだよねってなるけど、でもオフラインでメールが見れないのはイザって時に困るわけで。

やりたいのは、家PC・会社PC・Gmailの3箇所で同じデータを同期させるという運用。それぞれにメールの本文が全部ちゃんとあって、1箇所でメールを消したらそれが他の2箇所でもちゃんと反映されて、という感じにしたかった。一般的なPOPの使い方のように「受信したらサーバからはすぐ消す」というのはするつもりはない(POPの時も2箇所で受信させてたし)。

ThunderbirdでGmailをIMAPで使うための準備

まずはアカウントウィザードでGmailのIMAP用アカウントを作成する。

  • Thunderbirdのアカウントウィザードには「Gmail」という選択肢があるけど、これを使うとPOPアクセスの方のアカウントができてしまうので、普通のメールアカウントを作成して種類を「IMAP」にする。
  • 当然だけどGmail側の設定でIMAPの利用を許可しておく必要がある。

アカウントができたらGmail用に設定を変更しておく。

  • アカウント設定の「コピーと特別なフォルダ」で、「送信済みトレイ」と「下書き」をGmailのフォルダを使うように設定する。そうしないと、ルート直下と[Gmail]以下の2箇所に似たようなフォルダができて混乱の元になる。
  • Thunderbirdの迷惑メールフィルタも一応有効にしておいて、迷惑メールと判断された受信メッセージは[Gmail]以下の「迷惑メール」に移動するようにする。
  • [Gmail]以下の「ゴミ箱」をごみ箱フォルダとして使うように設定する。これはabout:configを使わないといけない。GmailのIMAPアカウントのサーバの設定群に対して、新規の文字列型設定でmail.server.server*.trash_folder_nameを追加し、値を[Gmail]/ゴミ箱に設定する。

新規にGmail IMAP接続用のアカウントを作るのなら、Gmail IMAP Account Setupを使った方が楽。これをインストールすると、アカウント作成のウィザードにGmailのIMAP接続用の項目が加わる。すでに手作業でアカウントを作ってしまった後では役に立たないので、早とちりして自分でアカウントを作ってしまった僕のような人はご愁傷様です。

あと、IMAPでの運用に限らないけど、Gmailっぽいスレッドフロート式の使い方をするためには以下の設定もしておくといい。

  • about:configでmailnews.thread_pane_column_unthreadsfalseにする。この変更を行っておかないと、スレッド表示とソートを併用できない。
  • ThreadBubbleをインストールする。入れておくと、一番新しくレスが付いたスレッドが、受信日時の降順ソートで上に来るようになる。

Gmailでまともにメールの整理をしてなかった人は、これを機に整理するようにしてみましょう(僕のことです)。

  • Gmailのラベル=Thunderbirdのフォルダ。Gmail側ではメールの整理にラベルを使うようにする。
  • Gmailのラベル名に半角スラッシュを入れる→Thunderbirdではサブフォルダになる。例えば「Mozilla/Firefox」と「Mozilla/Thunderbird」という2つのラベルを作っておくと、Thunderbirdからは「Mozillaというフォルダがあって、その中にFirefoxとThunderbirdというサブフォルダがある」ように見える。

というあたりを踏まえてラベルをいっぱい作っておく。

Thunderbird+IMAPで前述したような運用をするための設定

  • 新着メールをチェックする時、受信トレイだけでなくすべてのフォルダをチェック対象にする。about:configでmail.check_all_imap_folders_for_newを探して値をtrueにする。こうすると、フォルダごとのプロパティでそのフォルダを新着チェック対象に設定する手間が省ける。
  • アカウント設定の「オフラインとディスク領域」で、すべてのフォルダに対してオフライン利用のチェックを入れる。今後作成するフォルダもオフライン利用可能にしておく。
  • Sync On Arrivalをインストールする。about:configでextensions.checkCompatibilityfalseにしておかないとインストールできないので注意が必要。

この3つを組み合わせることで、

  • Gmail側のフィルタでそれぞれのフォルダに振り分けられたメールも新着チェックの対象になる。(POPの時は新着メールをダウンロードしてから各フォルダに振り分ける形だったのが、振り分けが終わった状態で受信される形になる。)
  • 新着チェックの時、メールの本文まで含めて自動的にダウンロードされる。(POPのように、オフラインでもメールを読めるようになる。)

という運用が可能になる。

注意点

  • 上記のような動作になるのは新着メールの受信時だけなので、すでにある全てのメールの本文をダウンロードさせるために、1回だけ「ファイル」→「オフライン」→「オフライン作業」でオフラインモードに切り替えてやる必要がある(ダウンロードが完了したらオンラインモードに戻すのを忘れずに!)。
  • GmailのUI上で選択とか表示とかをしようとすると挙動がおかしくなる変なメール(変なSPAMとか壊れたメールとか?)がある時は、チェックを付けて「削除」しておく。こうしないと、そのメールを含むフォルダをThunderbirdで受信する時にSome messages could not be FETCHed (Failure).というエラーが出る。
  • 手元にすでにあるメールボックスの中身をGmailにアップロードして一元管理しよう!と思っても複数フォルダをまとめてうpとかしたら駄目っぽい。アップロード中に「アクセスが多すぎます」みたいなエラーが出てしばらく繋がらなくなる。Gmailをストレージ代わりに使うツールとかを締め出すための制限か? しょうがないので、面倒だけどちょっとずつアップロードするしかないようだ。
  • フォルダの階層の深さには制限がある……というより、パスの長さに制限がある。Gmail上のラベルの文字数が最大で40文字までのようなので、ネストの深いフォルダはそのままではGmail上に持っていけない。短い名前に変更する必要がある。
エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能