Sunday, November 18, 2007

Converting OS X Mail.app from ISP IMAP to Google Apps IMAP

A few weeks ago I wrote about Google Gmail gets IMAP services. I'd already been using Gmail POP services on my accounts, but IMAP was a better choice for my wife. [1] I figured I'd migrate her from our no longer competent local ISP email service once things settled down a bit.

Today I migrated my wife's email from our newly annoying local ISP (visi.com) to our family private domain Google App domain.

It worked, but it's a bit tricky. I'll outline the process and some key things I learned, but I won't replicate the directions available elsewhere.

But first ...

A cautionary tale about IMAP hell - IMAP and local spam filters

Emily has been using IMAP on 3 OS X machines at our home for years. This seemed to work, but in retrospect there were severe problems I didn't recognize.
  1. Each client was doing spam filtering. She never tuned the local spam filters and was used to checking her ISP's spam filter, not the OS X Mail.app spam filter. The result was a lot of email was being captured in the local junk folder of each machine -- then being deleted after 30 days. She never knew about these. She lost quite a few messages this way, including some from family and business.

  2. It gets worse. She could easily have 2 Mail.app clients running simultaneously. Each polled the server every few minutes. Depending on which one got there first, email that was flagged by Mail.app as spam would get pulled off the IMAP server and saved in one or the other of the local Junk folders. This hit me when I was testing her new email. A message I expected to appear never showed up -- because the downstairs machine had pulled it from the IMAP server and stored it in the local Junk folder!

  3. Sent mail, of course, piled up locally. (She cc'd herself on key sent messages, so this was more annoying that anything else)
Now on to the conversion ...

Converting Mail.app from VISI IMAP to our family domain Google IMAP.
  1. Print out Google's Mail.app directions and their recommended client settings [1, see below!]
  2. Scan the Google Gmail IMAP Access document. Especially read known issues.
  3. Read the ThirtyOne discussion for the key advice on "Properly sort Drafts, Deleted, and Sent mail in Apple Mail"
I did the conversion on 10.3.9 and 10.4.11 Mail.app. It worked similarly on both versions. A few tips from the experience:
  1. If you have a huge number of emails on an IMAP server this may take a very long time or your client may crash. This wasn't an issue for us as we'd been archiving emails locally (limited capacity on the old service).
  2. If you're changing from a previous IMAP service, just edit your old IMAP entry. Don't create a new one. You need to edit to the new settings. Then exit. Then start again. I had to do that on 10.4 and 10.3 on 3 different machines. It only worked when I would exit and restart. Actually, most IMAP configuration changes required a Mail.app restart to complete properly.
  3. Turn off spam filtering in Mail.app. Remember our email Hell? Don't let that happen to you. Let Google do the spam filtering.
  4. The process created some empty local machine folders with names like "Junk" and "Draft". This was in addition to the IMAP folders. I confirmed they were empty and deleted them. They did not reappear on restart or with IMAP sync, they really were accidental junk.
  5. Follow the "ThirtyOne" directions about "Use This Mailbox For" so the Google Apps Sent folder vanishes and you see only the one "Sent" folder. Much nicer.
There's still one more thing. Google says Mail.app "Move deleted messages to the Trash mailbox" should be unchecked. This is fine when you're strictly doing IMAP. There's one Trash that appears and that's Google's. But, what if you're using storing email locally in an archival store? If you delete from that store, you may want a Trash.

On the family iMac, which is backed up, Emily does have archival email stores (see image above). On that machine only, I did check Mail.app "Move deleted messages to the Trash mailbox" and I set "use this mailbox for" so that Gmail Trash and Local Trash appear as "children" of the Mail.app iconic Trash mailbox. (See ThirtyOne folder link, above.)

The screenshot to the top left of this post shows you the 10.4 Mail.app view with both a set of local folders (we archive locally, drag and drop from the server to the local folders such as Save and "flylady") and the IMAP folders. [Gmail]/Sent has been mapped to the standard Mail.app Sent folder, but "Starred" and "In" remain as folders under [Gmail].

It seems to be working very well. The process is strictly for geeks however.

PS. When Blogger says they only accept JPEG and GIF uploads, they lie. They accept PNG too.

[1] Google maps tags to IMAP folders. Since I've used tags with my email this is a bit annoying, so I'm staying with POP for now. My wife has never used Gmail or Google Apps Mail, so this isn't an issue for her.

[2] Google is not joking about the best way to set up Mail.app. Follow this advice:
Drafts:
Store draft messages on the server > checked

Sent:
Store sent messages on the server > do NOT check

Junk:
Store junk messages on the server > checked
Delete junk messages when > Never

Trash:
Move deleted messages to the Trash mailbox > do NOT check [jf: see "one more thing, above"]
Store deleted messages on the server > do NOT check
Update 11/19/07: I've posted on Gmail Groups: we're seeing multiple versions of messages saved to the Trash.

Update 12/21/07: Either Google changed something or a new router might have broken connectivity from one of my IMAP OS X Mail.app clients. I tried following Google's OS X Mail.app configuration settings and got nowhere. The fix is to disregard all their lovely client-specific instructions and use the bare bones geek-friendly directions provided for "other clients". The settings there differ from the OS X Mail settings.

Needless to say, Google is in its usual confused state.

No comments: