I have spent considerable time over the last year or so trying to get my data and systems set up to have email, contacts and calendars available both online and offline on both my main computer, my mobile device and online as a guest user on others computers. All the while keeping my inbox clean from spam and bulk mail, contacts synchronized and access my preferred user-interfaces and applications. I've recently been able to get this pretty close to perfect. In this article I will describe the technologies I use and how I've configured them to achieve this.
Hardware & SoftwareWhile the set up I have is not specific to the hardware I use, not all of these options will be possible or the same with different hardware. Nevertheless, if you're using a blackberry instead of an iPhone, or Linux instead of OS X, or Yahoo mail instead of Gmail, most of this is probably still possible. The iPhone is certainly one of the most powerful PDAs available. I can't compare directly with other PDAs (I've never owned others), but it's critical features for me and this article are it's tight integration with Apple software, ease of use, wide range of apps that extend it, lack of Windows Embedded, and it's geek factor. The MacBook Pro, as well as being sexy and a very fine & powerful machine, also allows me to use Mac OS X – my preferred development and work environment – without hassle. OS X comes with Apple's Mail.app, Address Book.app and iCal.app – all of which integrate smoothly with the OS X desktop, iPhone and a number of web services and protocols. Further, they do not come at an additional cost, like some alternatives. As for web software, Google's offerings are difficult to beat for their good usability, high-interoperability, significant poularity and wide range of data services and protocols. Gmail & Google Calendar are my preferred applications and user interfaces for their respective tasks. For contact management I prefer Apple's Address Book over Google Contacts.
ConfigurationThis is a general step by step guide to configuring the above hardware, software and webware to keep your data available and synchronized in all the environments.
- Create or configure one or more Gmail account/s as desired.
- Set up your From email addresses in Gmail and select "Reply from the same address the message was sent to" in Gmail > Settings > Accounts
- Set up filters and labels in Gmail to keep list emails out of your inbox, and keep urgent emails in your inbox.
Mail.appOnce you're happy with Gmail, filters and labels, set up Mail.app (or a similar IMAP mail client) to access your Gmail email via IMAP. See Gmail > Settings > Forwarding and POP/IMAP to enable IMAP and get full documentation for this.
iPhoneRather than configuring mail settings on your iPhone, tell iTunes to synchronize mail settings to your iPhone, and also tell it to overwrite your iPhone's mail settings next time it syncs. As well as simplifying configuration of your iPhone, this approach allows you to continue to use the very good Mail.app integration in iPhoto, Automator workflows and elsewhere on the OS X desktop. I find this very valuable for quickly sending time reports from SlimTimer to clients. The integration goes well beyond
mailto:links. If you don't use Mail.app or another email client that iTunes can synchronize your iPhone's mail settings to, then you can configure your iPhone directly to connect to your Gmail IMAP account. This is a little more tedious. Note that emails are never synced from Mail.app to your iPhone, only mail settings (email accounts, servers, user names, passwords) are synced. Also iPhones only retrieve up to 200 messages at a time over IMAP (or 50 by default – You can change this in iPhone > Settings > Mail > Show). Also it needs some nudging to get email bodies, and doesn't recurse into IMAP folders (Gmail labels). So it's not very good for retrieving your email for offline reading, but still workable.
Offline email clientYou could use Mail.app for your offline email needs, and in fact I used to. However if you prefer to Gmail's UI, then you'll need to remember to sync Mail.app before you head offline, and you'll be frustrated with Mail.app's relatively clunky UI. Here's a better way;
- Install Google Gears
- Enable offline access at Gmail > Settings > Labs > Enable Offline, then Gmail > Settings > Offline. You may need to enable Labs in your Google Apps for Your Domain settings, or switch to "US English" in Gmail > Settings in order to make these options available.
ContactsContacts synchronization can be configured from iTunes. Plug your iPhone in, then go to iTunes > Your iPhone > Info > Contacts, check "Sync Google Contacts" then click the Configure button. You can also configure this from Address Book.app's preferences. You may need to configure in both – I'm not certain. Unlike IMAP, you don't need to do anything in Gmail for this to work.
- Set up your Google Calendars anyway you please.
- Calendar synchronization to iCal.app over the CalDAV protocol can be configured with Google's instructions. You can add several different calendars to iCal.app this way.
- Tell iTunes to synchronize some or all of your calendars to the iPhone at iTunes > Your iPhone > Info > Calendars.
Multiple Gmail AccountsI have another similar but separate setup for my personal email; Another Gmail account, and another IMAP account in Mail.app (which is also synced to my iPhone). I synchronize contacts across the 2 Gmail accounts manually now and then, but don't really need to.
ConclusionMy mail is always synchronised, available and up to date both offline on my computer and online on Gmail. I can sync recent mail to my iPhone manually. I can read and write mail on any of my devices whether offline or online, or any other internet device that's online, and have them all synchronised when I get online again. Similarly my calendars are always synchronised, available and up to date both offline on my computer and online on Google Calendar, and online with my iPhone (using Google Calendar in Safari). I can sync my iPhone manually, though this requires I sync it with both iTunes and open iCal.app. I can view and edit events when offline with the iPhone and have changes synchronised, but not create new events. I can add or edit my contacts at any time on any device, though choose to use Address Book.app by preference, or iPhone Contacts app if my computer is asleep or not with me. Changes are synced between Gmail (Google Contacts), Address Book.app and iPhone Contacts app whenever I sync my iPhone with iTunes. As well as the iPhone's native apps (Mail, Calendar, Contacts) which are useful for accessing and editing this data offline I can also use Google's mobile web apps to access Gmail and Google Calendar when I'm online. The main annoyances are pretty minor really;
- New events created on the iPhone are not synchronized back to Google Calendar
- Getting the iPhone to synchronize mail messages for offline reading is a little time consuming.
- Event synchronization to the iPhone requires running iCal.app for a minute before plugging in and synchronizing the iPhone.