When you search google for a similar phrase to the title of this
post you usually get a fairly stock response; use exchange, mobile me or
gmail and you can have push e-mail by simply activating it in the mail
settings. The thing is, most people who search for the above know this
already. What they
really want to know is how they can push
e-mail with a conventional e-mail account that they may have from a
hosting provider and access through thunderbird or outlook.
With BlackBerry, push e-mail is really simple. Just provide the setup
screen with your IMAP enabled e-mail address and password and
BlackBerry will start pushing e-mail to your phone. With iPhone and iPad
it can also be that simple without changing your mail provider or
e-mail address but to get there we need a step in between. I call this
the fake exchange server.
A little known
sourceforge project called z-push
holds all the answers. Essentially by installing this PHP code on a web
server and setting up a config file or two we can fool an iPhone or
iPad into thinking it is talking to a Microsoft exchange server and get
genuine push e-mail from a standard IMAP e-mail account!
To get started you’ll need the following:
- A web server
- Copy of Z-Push code
- The details of your IMAP e-mail server
Don’t look with concern at the first requirement. You can probably
make use of a shared hosting account for this, or if you were prepared
to go out and spend on mobile me then you will probably be able to spend
less and get your own VPS, which, if you intend to push a lot of mail,
might be a better bet in the long run anyway.
Configure your web server to support SSL and install PHP. I won’t go
into detail on how to do this as there are plenty of online tutorials
for this already that you can google. The SSL bit is important as this
will ensure that e-mail traffic from your iPhone or iPad is encrypted
which is essential if you have a habit of using open WiFi connections
while on the move. If you’re doing things on the cheap and using a home
server then make sure you have a static IP at home. You can get a free
SSL certificate from the fine folks at
StartSSL.
Once your server is up, follow the instructions for installing z-push
from their website. In practice I found that the stable version was far
from it and didn’t really work so opted for the 2.0 alpha version. Try
your luck and see what you get. There is a forum on the z-push site from
where you should be able to obtain help if you need it.
With z-push installed and configured as per your IMAP e-mail server
settings, you’re ready to try your luck from your Apple device. Head on
over to e-mail accounts and delete the current entry you have. Once you
have done this, select to configure a new account and choose Microsoft
Exchange. Enter your e-mail address, username and password. Leave the
domain blank and SSL on. Often your username and e-mail address are one
and the same although this can vary. It’s unlikely that just these
details will connect as you’re pushing mail from your dummy server, so
you’ll be prompted after a few seconds for a server URL. Enter the
domain name on which you have installed z-push.
Assuming all of this is accepted by your Apple device, you now just
need to go to the fetch new data settings, enable push and and change
fetch to manually. Open up mail and if all is working you should see
your e-mail in folders. If so your final test will be to return to the
home screen, send an e-mail to yourself from your PC and watch the
iPhone/iPad. You should see the e-mail arrive within seconds. If so,
you’re pushing mail!
At the close of this article I’d like to mention that my ability to
investigate this scenario and write up the solution is due in no small
part to the generosity of
Stinky Ink in them putting up an iPad2 as a prize in their WordCamp UK competition, many thanks once again!