Google Apps と IMAP なメール生活

地震を始めいろんな理由で、使っているメールサーバのいくつかが最近 Google Apps に移行しました。

いままでは cyrus なり courier の imapd にメールを溜め、 Thunderbird でメール読んで mew でメール書いていたんですが、これが Google AppsIMAP サーバ (Gimap) に変わりました。プロトコルとしては IMAP で同じですが、ずいぶん前に調べたとおり、フォルダの概念とラベルの概念が微妙に違うんですよね。

ということで違いを調べてみたいんですが、正直よくわからん。まあ中の実装がどうであれ、こう設定すればいいのね、というのはわかった気がします。もうちょい IMAPRFC ちゃんと読まなきゃだね。

以下、 imap というのはよくあるふつうな imap サーバ、 gmailGoogle AppsGMail も含んだもの。

フォルダとラベル

  • imap
    • あるメールは unique な場所としてのフォルダという property をもつ。
    • おなじ message-id をもつメールが複数存在しても良く、とうぜん複数のフォルダにあったりする
    • フォルダはたとえば INBOX.foo.bar といった階層を持つ (という実装になってるって話だけど)
  • gmail
    • フォルダという概念はなく、すべてのメールは「すべてのメール」に入ってる
    • メールは複数のラベルを持つことができる
    • おなじ message-id をもつメールは、実体として 1 つ
  • imap で見た gmail
    • [Gmail]/foo/bar という形のラベルがフォルダのように見える
    • cyrus imapd でいうところの duplicatesuppression: yes の状態で、おなじ message-id のメールを複数送っても1通しかこない。
    • メールに複数のラベルが付いている場合、複数のフォルダに入っているように見える

送信済みメール

  • imap
    • MUA が送信したメールのコピーを INBOX.Sent に置くことで、送信済みメールのフォルダを実装しています。
  • gmail
    • gmailsmtp サーバは、送信したメールを gmail に保存した上で "[Gmail]/送信済みメール" のラベルをつけてくれるので、 MUA は何もしなくていい。というよりむしろ、してはいけない。

"Bcc: 自分" で暮らしていた人は、同じ message-id なので同じメール扱いで、受信フォルダと送信済みに同じメールが表示されます。つまりは同じメールに "[Gmail]/送信済みフォルダ" と inbox ラベルが付いた状態。これを削除してしまった場合、送信済みからも消えてしまうので注意です。

gmail のスレッド表示のおかげで、自分が送ったメールも含めてスレッドはちゃんと会話形式で表示されることになります。

メールの削除

  • imap
    • ゴミ箱に移動する = INBOX.Trash フォルダに移動する
    • 完全に削除する = \Deleted マークをつけて適当なタイミングで EXPUNGE する
  • gmail
    • ゴミ箱に移動する = "[Gmail]/ゴミ箱" ラベルを付ける
      • ゴミ箱のメールは 30 日経つとかってに消える
    • \Deleted マークつける = マークをつける対象のメールについて、そのフォルダに対応するラベルを消す??
      • ちょっとここの動作はわかんない。。。
      • 少なくとも、ふつうの IMAP クライアントでメールを消しても、ラベルが消える (= 全てのメールに残る) だけで、メール自体は消えません。

注意点として、送信済み同様にメール複数のラベルをもったメールを削除した場合、 imap で見ると フォルダ A に入ってるメールだけを消したつもりが B に入ってる同じメールも消えてしまう、ということがあります。

迷惑メール

  • imap
    • 迷惑メールとしてマーク = これはクライアントがもつ機能でしかない
    • 迷惑メールフォルダに移動 = INBOX.Junk フォルダに移動
  • gmail
    • "[Gmail]/迷惑メール" ラベルが付いているもの。

メールの未読/既読

  • これは \Seen フラグで同じかな??

Thunderbird での設定

上の参考資料に書いてあるとおりですが、以下のように設定しました。最初の大まかな設定は自動設定に任せてて、特に書いてない項目はデフォルトのまま。 (英語版 Thunderbird 3.1.9 です)

  • Server Settings
    • Server Settings
      • When I delete a message: Just mark it as deleted
    • Advanced... (右下のボタン)
  • Copies & Folders
    • When sending messages, automatically:
      • Place a copy in: check off
      • Bcc these email addresses: いちおう自分自身を追加
    • Drafts, Archives, and Templates
      • Keep message drafts in: Other: 下書き
      • Keep message archives in: Other: すべてのメール
      • keep templates in: "Templates" Folder on: (デフォルト), これは使わない限りフォルダできないので無視
  • Junk Settings
    • Enable adptive junk mail control: check off
    • Move new junk messages to: Other: 迷惑メール (これできっと学習してくれるはず)
  • Synchronization & Storage
    • Message Synchronizing の Advanced...
      • すべてのメールのチェックは off にする

Thunderbird の mark it as deleted はなにやってるんだ...? \Deleted じゃないの??

mew での設定

気をつけなければならないのは以下:

  • fcc: %Sent は勝手にやってくれるので不要
  • メールの削除は \Deleted ラベルじゃなく「[Gmail]/ゴミ箱」に移動しないといけないので、 imap-trash-folder の設定が必須
    • mew の実装では COPY してからもとのメールを \Deleted つけて EXPUNGE するので、 ただし mew
  • というかフォルダ名が日本語とかありえないので、gmail の表示言語は英語にしておく。
    • いや、どうかな...
(setq mew-name              "ICHII Takashi")
(setq mew-user              "ichii")
(setq mew-mail-domain       "example.net") ; 名乗るメールアドレスは ichii@example.net
(setq mew-imap-user         "ichii386@mail.example.com") ; apps のアカウント
(setq mew-imap-server       "imap.googlemail.com")
(setq mew-imap-ssl          t)
(setq mew-imap-trash-folder "%[Gmail]/Trash")
(setq mew-imap-delete       nil) ; imap サーバから削除しない
(setq mew-smtp-user         "ichii386@mail.example.com")
(setq mew-smtp-server       "smtp.googlemail.com")
(setq mew-smtp-ssl          t)
(setq mew-fcc               nil) ; 不要
(setq mew-dcc              nil) ; 必要なら入れる

iPhone (iOS4)

ちょいおまけですが、 http://support.apple.com/kb/HT4207 という話があります。

ようするに削除はうまく動かない (全てのフォルダに残ってしまう) ので、削除ボタンをアーカイブボタンに変えてしまえばいいじゃん、ということでした。

まとめ

とまあ、ようするに gmailIMAP はあくまで「それっぽく動く」だけで、根本的に思想が違うんです。なので gmail をその思想通り使うにはやっぱり web の gmail を使う必要があって、 MUA に趣味が現れる時代じゃないんだな...。

思想が違うものが同じようなアプリで同じように扱えてしまうと、却って混乱のもとなのかもしれません。これを機に、 gmail になってないのも全部移行してしまおうか悩んでます。