Get True Push Gmail on Your iPhone or iOS Device

A few years ago, Google announced it was ending support for the Exchange ActiveSync Protocol (EAS) for most users. Now those of us who were grandfathered in have changed devices, and likely lost that grandfathered status. So how do you get Gmail pushed to your iOS device without having to download the Gmail app – or giving up the built-in mail client? It’s pretty simple – you resort to the only free email option that Apple provides push to – a secondary iCloud account. But what about that pesky “iCloud won’t let you send as another address” problem? Simple fix – use GMail’s SMTP server.

By: rovlls

Goal:

Receiving mail sent to your Gmail address in iOS’s built-in mail client with push speed (no Fetching!) & Sending mail with your Gmail address (or custom alias).

Caveats:

  • This method will likely be somewhat annoying if you’re a heavy Gmail in the browser user, since most of your inbox will live in iCloud. This method works best if you use mail clients on your mobile devices and desktop, and rarely use webmail.
  • This method isn’t as nice if you have a Gmail account that you use to send out as another user (i.e. whatever@gmail.com but you usually send as whatever@customdomain.com). I explain this in more detail below, but it boils down to this: Your device won’t be able to tell Gmail what to send out as, so Gmail will assume you want to send as your primary address. If you’re a Google Apps Free user, then this method will work fine.  I was actually wrong about this one – this works fine as long as you have your preferred FROM header selected as the default account in Gmail’s settings. So if you don’t already, log in and click the Make Default link next to your desired FROM account in the “Accounts & Import” tab in settings.

Here’s what you need…

  • A Gmail account that has IMAP enabled (Check your Gmail settings). You’ll need the username (your complete @gmail.com or @customdomain address) and the password (or an Application Password if you use Google’s 2-factor authentication.
  • A secondary iCloud account (See the steps below to create one)

On the iPhone / iPad / iOS Device

I’m using iOS 7 on an iPhone 5 for these screenshots. The steps should be more or less the same

  1. If you don’t have one, set up a secondary iCloud account. I suppose you could use your primary one, but I prefer to keep the mail / inboxes separate

To do this,  go to Settings on your iOS device and tap on Mail, Contacts, & Calendars. Then tap “Add Account”, then “iCloud”, then “Get a Free Apple ID”

2014-07-04_23_27_362014-07-04_23_27_412014-07-04_23_27_44

Go through the enrollment process and note your new iCloud username and password. You’ll need the username later when you set up your Gmail address to forward to it.

  1. Set up this secondary iCloud account to send through Gmail’s SMTP server (smtp.gmail.com, port 587, Use SSL set to On)

To do this, go back into Mail, Contacts, & Calendars, and tap on your secondary iCloud account. Then tap on the account name once more to go to the Account page. From there tap on “Mail” under the advanced settings. Then tap on SMTP.

2014-07-04_23_27_362014-07-04_23_27_502014-07-04_23_27_532014-07-04_23_27_56

Now that you’re in the SMTP screen, tap Add Server, and fill in your hostname (smtp.gmail.com) and your full Google Gmail username (whatever@gmail.com or whatever@domain.com) and password. If you’re using 2-factor authentication, you’ll need a dedicated application password. Once all the info is verified, you should see an entry under “Other SMTP Servers” for smtp.gmail.com.

You will need to go into both the iCloud & Gmail SMTP servers, setting iCloud to Off, and Gmail to On. In the end, your screen should look like the third picture below:

2014-07-04_23_28_022014-07-04_23_28_072014-07-04_23_27_59

OK, now you’re done.

Basically we’ve told that iCloud account to send out through Gmail. Google’s servers force all outgoing mail on an account to be through either the default FROM address (your account’s address OR the address you selected as default on the Accounts & Import tab in Gmail’s settings)) or an alias, so in this case, while iCloud will want it to go out as whatever@icloud.com, it will be changed by Gmail to whatever@gmail.com. If you have an alias that isn’t your primary Gmail address, you’ll likely not be able to use this setup since iCloud won’t let you change the “from” address. However you can set up a regular IMAP account on your device with your Google credentials and change the “FROM” address.

The only issue is that replying to messages won’t be seamless – you’d have to manually select to send your reply through your IMAP Gmail account, not your secondary iCloud email account, which is messy. Therefore if you have a gmail account with a custom alias you want to use, these steps might not be any easier for you than just resorting to non-push email. As I said above, I was wrong on this one – just make sure you have the address you want your email to come from set as your default address on the Account & Import tab in Gmail’s Settings.

On Gmail’s Website

Now you need to get your Gmail pushed to your new secondary iCloud email. You can do this in Gmail’s settings by forwarding all of your mail to your new iCloud address. I then set Gmail to archive my mail, using a filter, so it’s out of my Gmail inbox (my iCloud inbox becomes my “working” inbox).

In the end, as a bonus, you also can get backups of your mail. Basically you’ll have a copy on both Google’s Gmail servers and Apple’s iCloud servers, so if one is down for any length of time, you can use the other (Although sending through iCloud.com will use your iCloud email address, not your Gmail address). In my setup, I have a similar configuration on my desktop using Apple Mail – but if you’re a heavy webmail user, it could be distracting to manage two inboxes.

In a few years if you max out your storage on iCloud, then simply create a new iCloud secondary account, and keep your first secondary account’s information if you need to use those older emails.

Hope this helps you – in the end I now have the solution I want: I send out as my custom email address, and receive at the same address in real-time. Sure I’m leveraging two clouds to do it, but who said life was easy 🙂