地震を始めいろんな理由で、使っているメールサーバのいくつかが最近 Google Apps に移行しました。
いままでは cyrus なり courier の imapd にメールを溜め、 Thunderbird でメール読んで mew でメール書いていたんですが、これが Google Apps の IMAP サーバ (Gimap) に変わりました。プロトコルとしては IMAP で同じですが、ずいぶん前に調べたとおり、フォルダの概念とラベルの概念が微妙に違うんですよね。
ということで違いを調べてみたいんですが、正直よくわからん。まあ中の実装がどうであれ、こう設定すればいいのね、というのはわかった気がします。もうちょい IMAP の RFC ちゃんと読まなきゃだね。
以下、 imap というのはよくあるふつうな imap サーバ、 gmail は Google Apps も GMail も含んだもの。
参考資料
フォルダとラベル
- imap
- あるメールは unique な場所としてのフォルダという property をもつ。
- おなじ message-id をもつメールが複数存在しても良く、とうぜん複数のフォルダにあったりする
- フォルダはたとえば INBOX.foo.bar といった階層を持つ (という実装になってるって話だけど)
- gmail
- フォルダという概念はなく、すべてのメールは「すべてのメール」に入ってる
- メールは複数のラベルを持つことができる
- おなじ message-id をもつメールは、実体として 1 つ
送信済みメール
"Bcc: 自分" で暮らしていた人は、同じ message-id なので同じメール扱いで、受信フォルダと送信済みに同じメールが表示されます。つまりは同じメールに "[Gmail]/送信済みフォルダ" と inbox ラベルが付いた状態。これを削除してしまった場合、送信済みからも消えてしまうので注意です。
gmail のスレッド表示のおかげで、自分が送ったメールも含めてスレッドはちゃんと会話形式で表示されることになります。
メールの削除
- imap
- ゴミ箱に移動する = INBOX.Trash フォルダに移動する
- 完全に削除する = \Deleted マークをつけて適当なタイミングで EXPUNGE する
注意点として、送信済み同様にメール複数のラベルをもったメールを削除した場合、 imap で見ると フォルダ A に入ってるメールだけを消したつもりが B に入ってる同じメールも消えてしまう、ということがあります。
迷惑メール
- imap
- 迷惑メールとしてマーク = これはクライアントがもつ機能でしかない
- 迷惑メールフォルダに移動 = INBOX.Junk フォルダに移動
メールの未読/既読
- これは \Seen フラグで同じかな??
Thunderbird での設定
上の参考資料に書いてあるとおりですが、以下のように設定しました。最初の大まかな設定は自動設定に任せてて、特に書いてない項目はデフォルトのまま。 (英語版 Thunderbird 3.1.9 です)
- Server Settings
- 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: (デフォルト), これは使わない限りフォルダできないので無視
- When sending messages, automatically:
- Junk Settings
- Enable adptive junk mail control: check off
- Move new junk messages to: Other: 迷惑メール (これできっと学習してくれるはず)
- Synchronization & Storage
- Message Synchronizing の Advanced...
- すべてのメールのチェックは off にする
- Message Synchronizing の Advanced...
Thunderbird の mark it as deleted はなにやってるんだ...? \Deleted じゃないの??
mew での設定
気をつけなければならないのは以下:
- fcc: %Sent は勝手にやってくれるので不要
- メールの削除は \Deleted ラベルじゃなく「[Gmail]/ゴミ箱」に移動しないといけないので、 imap-trash-folder の設定が必須
- というかフォルダ名が日本語とかありえないので、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 という話があります。
ようするに削除はうまく動かない (全てのフォルダに残ってしまう) ので、削除ボタンをアーカイブボタンに変えてしまえばいいじゃん、ということでした。