The iPhone as a mail device

Apple has been getting a ton of press about the launch of v2.0 of the iPhone software (along with the iPhone 3G, of course!) I’ve been using a pre-release version of the v2.0 firmware on my iPhone, but I didn’t want to write about it until the release because I hoped that some of the glaring problems with Apple’s implementation would be fixed in the RTM version. Sadly, this doesn’t seem to be the case.

Apple has a page with lots of deeper information on the enterprise features of the v2 software. I haven’t spent any time with the device management or provisioning bits, nor the VPN support. However, I have spent a lot of time with the Exchange-compatible features, and overall I’d have to say Apple isn’t there yet. Windows Mobile still has some compelling features that the iPhone lacks. It’s entirely possible that I’ve just missed some iPhone features; I’ll update this post as I learn more (or am corrected).

Update 1: [0017 Monday 7/15] I should point out that Exchange ActiveSync is a protocol that supports lots of different content types and protocol option. Apple, like most other EAS licensees, has implemented a subset of EAS. I’m complaining about Apple’s implementation here, not EAS itself.

About the author

Before I get into the meat of my piece, a few words about my qualifications. I’ve been a Mac user since 1984, an iPhone user since July 8th of last year, and an Exchange admin since 1995. I’m a Microsoft MVP for Exchange and Office Communications Server. My day job involves every possible sort of exploration into how Exchange works, with a heavy focus on mobility. I carry a Windows Mobile 6.1 device daily and rely on it to get my work done. I’ve been in love with the polish and responsiveness of the iPhone UI from day 1. It’s an awesome device for most purposes. However, from my standpoint as an experienced Exchange administrator and WM device wrangler, there are still a lot of missing pieces (or things that are poorly implemented).

E-mail

Let’s start with e-mail, which seems like an easy enough application to implement. Apple got the single biggest item right: push e-mail works properly. Mail arrives when it’s supposed to, and replies are sent like they’re supposed to be. HTML mail displays beautifully. In fact, the overall Mail experience is basically just like it was in v1, for better or worse.

We interrupt this review for a special gripe: Apple, why on earth do you expand the ENTIRE folder list when I want to navigate to a new folder or move a message? This is incredibly inefficient for large mailboxes. It would help a great deal if the Mail application would remember the most recently used folder and jump to it, or (even better) if the folder list were collapsible. Please fix this in the next point release. (Side gripe: why can’t I flick left or right to change e-mail accounts, like I can with Safari’s page selector?) We now resume our regular programming.

You might think that the iPhone would work well as an offline mail client. You might also think that you should be dating Danica Patrick and that gas should be $1.25/gallon. Bad news: the iPhone’s offline story is poor. When the device radios are off, any attempt to move or delete messages results in an error dialog. How lame is that? Did anyone at Apple test a Windows Mobile device to see how it works in this situation? There are a few nice touches, though. For example, a small status line in the main mail view shows you how many messages are queued for sending. At least the software is smart enough to automatically attempt a sync as soon as the network comes back up.

There are a number of other Windows Mobile 6 features missing here: for instance, you cannot flag or unflag messages for follow-up; you can’t set out of office messages or timings, and the device will frequently complain if you try to throw away a message that a client- or server-side junk filter has already moved elsewhere. The extremely convenient press-and-hold shortcuts that WM provides (like “d” to delete or “m” for move) are of course absent here, too.

Bottom line: mail is prettier on the iPhone. The devices are tied in terms of sync behavior and performance. My WM 6.1 device has a significant edge in usability speed because of one-handed message selection and movement, plus the press-and-hold keys. I realize that for novice users this speed differential might be much smaller… but I’m not a novice. (And, to forestall any flames: the iPhone keyboard is OK with me. Once I got used to it, it’s as fast as a physical keyboard.)

Calendaring

OK, so let me get this out in the open: I can’t stand iCal on the desktop. It’s so lame compared to Entourage, Outlook, and OWA that I just flat don’t use it. The fact that the iPhone’s calendar app emulates iCal closely is not a good thing. Color coding of events on the iPhone is driven by where events appear in iCal, meaning that if you sync with Exchange (or Entourage, FTM), your events appear in one color. There’s no support for Exchange categories, an obvious omission.

One thing I do like: the default behavior when a new meeting invite appears is to play the calendar reminder sound and show an alert. This is useful because there’s no other way to show that you have pending meeting invites. There’s a host of weird behavior involving existing recurring events; after your first sync, most of them will show up as “maybe” (which in Apple-speak means “tentative”), even if you’ve previously accepted them.

Now, on to the really bad stuff. There are several common– nay, fundamental— things that you cannot do with the iPhone calendar application. You cannot:

  • create a meeting request and invite other people to attend. Without this, the wireless calendar functionality is largely useless unless you’re the Unabomber or some other kind of Luddite hermit who never works with others. (Oddly, you can view the attendee status of meetings you create on the desktop!)
  • create a recurring meeting unless it is repeated daily, weekly, bi-weekly, monthly, or yearly. That’s right– no more “first Thursday of every month” or “every Monday, Wednesday, Friday” appointments. This is disgraceful. Even Palm managed to eventually get this right, for crying out loud.
  • create a meeting in a time zone other than the one you are currently in. I guess you might be able to do this by changing the device time zone, but that doesn’t seem like a very good idea to me, and I haven’t tried it. I have tried (in vain) explaining why I created a meeting request for 4:30am Pacific time because I forgot my device was still on Eastern time, though.
  • view suggested meeting times or free/busy times, either for your own calendar or for others’. That makes sense, given that you can’t invite other people, but it’s still super lame.
  • move to an arbitrary date, in either the future or the past. Say you want to check your schedule for 331 days from now so you can grab some frequent-flyer tickets to Maui. Hit the “month” button, then flick until you get to June 2009. Let’s hope you don’t need to look at dates in the far future or you’ll end up with a pulled tendon or something.

As with the offline mode behavior of the mail app, it’s mind-boggling that Apple didn’t get these right. We’re not talking cutting-edge functionality here. The fourth one is especially egregious because it’s been that way since the v1.0 release.

Special note to IMAP users: you can receive meeting invitations as .ics attachments, but you can’t open them or add them to your calendar. This is apparently a feature, not a bug. You’re welcome. (Special bonus: the Calendar app just died on me as I was looking at my list of pending invitations).

Tasks

The iPhone doesn’t include a built-in tasks/to-do application. Windows Mobile 6 has task support baked in, so it has a clear advantage here. Apple missed the boat here, as this is a natural piece of functionality for a mobile device. There are a number of such programs at the iPhone App Store, but none of them seem to support wireless sync. My money is on OmniGroup’s OmniFocus, which I’ve recently started using on the desktop. OK, I admit it; OmniFocus doesn’t support sync yet either, but it’s supposed to soon, and I trust them based on their track record.

Notes

The iPhone Notes application is anemic and, IMHO, basically useless. (No, I don’t mean the iPhone version of Lotus Notes, because it doesn’t exist; I mean the built-in Notes application). Given its overall level of uselessness, it’s no surprise that it doesn’t sync with Exchange-side note items. If server sync is important to you, get Evernote, which has clients for Mac OS X, iPhone, Windows, Windows Mobile, and IE/Firefox/Safari. (Ping me if you want an invite). [Update 2: I use OneNote on my Windows machines, and its sync behavior with Windows Mobile is brilliant: plug in your device, automatically get the client, and then sync “just works”. It is not, however, wireless, which is what I need. Plus, there’s no Mac client.]

Policy control and security

The first time I synced the iPhone with my home Exchange server, I didn’t see two things that I expected. Windows Mobile correctly warns me that I’m using a potentially untrusted certificate, because it’s issued by my self-signed root CA. Once the initial sync connection was made, I got a warning that I would have to accept the organization’s EAS policy to let sync continue. The iPhone didn’t show either of this warnings. I consider this a failure in both cases. Without a certificate validity warning, an attacker could easily mount a man-in-the-middle SSL attack. Accepting the server-side EAS policy without telling the user opens the risk that the user’s device will be remotely wiped without her knowledge, or that other policy changes will unexpectedly remove device functionality. Because I’m on the road, I haven’t actually tested any of the remote wipe or security policy options because I need the device to keep working until I return home. Look for a follow-up article (in which I will probably complain that the iPhone doesn’t support the most interesting new EAS policies of Exchange 2007) later.

As a side note, I fixed the original WM certificate error by adding my domain root CA certificate to the device. There doesn’t seem to be a way to do this on the iPhone, although I haven’t tested the desktop provisioning utility.

Bugs!!!1!

Are there bugs? Yes, in fact there are. The most noticeable one for me is Apple’s refusal to use IMAP EXPUNGE to properly remove items. This makes it very frustrating to use an iPhone for IMAP access to an account that you use with Outlook or Entourage elsewhere. There are other bugs, too. For example, when you “reply all” to a message, your sending address is included as a recipient. I already mentioned the way that previously-accepted repeating events act, but I am too busy/lazy to come up with a detailed repro case.

Where to learn more

Apple’s got a decent “quick start” page explaining how to set up Exchange ActiveSync for use with the iPhone, and the Exchange team has a more detailed post on the Exchange team blog. I suspect the comments for this post will be a fertile ground for updates, too. [Update 3 @ 1944 7/15: my main main Omar has a wiki that chronicles bugs in the iPhone Exchange integration here.]

27 Comments

Filed under Reviews, UC&C

Time for a new laptop bag?

Tim sent me a link to these beauties from APC, which feature a built-in charging system to let you quickly charge all your junk without taking it out of the bag. I was all set to order one (to replace my trusty PATRIOT, which has done yeoman service for two full years, a new record for me). That is, I was ready until I saw this article about new “checkpoint-friendly” laptop bags. The very thought of going through a checkpoint without having to remove my laptop and plunk it into a filthy plastic bin blows my mind. To be sure, I should wait until I can get a checkpoint-friendly bag with an integral charger.

1 Comment

Filed under Travel

HOWTO integrate OCS 2007 and OCS 2007 Speech Server

One of the questions I frequently get in the UC Metro classes is how to install and use OCS 2007 Speech Server. First, you have to download it. After that, installing it is easy, but there are two other things people usually want to be able to do. First, they want to be able to use Communicator to call Speech Server. Second, they want to be able to transfer calls from Speech Server to Communicator. Michael Dunn has answers to both questions.

Comments Off on HOWTO integrate OCS 2007 and OCS 2007 Speech Server

Filed under HOWTO, UC&C

Too busy to blog

Wow, I’ve been busy the last week or two! It started with a trip to Redmond to teach a group of Microsoft’s global ISVs about the APIs of Microsoft’s unified communications products. I got a lot of great real-world feedback about how these customers are using the APIs, which we’ll be using as we continue to work with other customers who want to add communications, collaboration, and scheduling to their applications. (Plus, while I was in Redmond I found Carolina Smoke, an unexpected bonus).

Then I came home, where Arlene and I completely redid the living room: we painted all the walls, hung the TV on a wall mount for the TV, and installed a new TV stand. Of course, none of the steps were actually that simple. For example, I’d read that Behr Silver Screen made a good projection surface, so I painted one wall with two coats… only to find out that it was not a good projection surface. Four coats of eggshell white later, I was ready to move on to the other walls. The carpet installers came yesterday, so we’re officially finished with that room (except for the speaker stands, which aren’t here yet).

Then the boys came back from their trip to Louisiana, so it was back to normal life for a day, then it was time for David’s Boy Scout camp. While he was gone, Peter, John, and Paul Flynn from 3Sharp came to town for our quarterly meeting; along with watching some truly excellent thunderstorms, we got a ton of work accomplished. It’s amazing what you can do with four smart guys locked in a room for two days.

Now we’re having a temporary lull before the big fireworks on the 3rd and our whale-watching trip to Seattle next week. I’ll try to blog somewhat more regularly, but no promises.

Comments Off on Too busy to blog

Filed under Friends & Family

Proofpoint acquires Fortiva

The mating dance in archiving and compliance continues; I just got a press release announcing that Proofpoint has acquired Fortiva, a major software-as-a-service archiving player. This gives Proofpoint a great entrée into the world of archiving, and extends their reach in the SaaS world. This FAQ outlines how the combined entities will function; basically, Fortiva will keep its Toronto development operations, and customers will still deal directly with them for the foreseeable future.

Comments Off on Proofpoint acquires Fortiva

Filed under UC&C

Salesforce.com poaches Notes accounts

Very interesting article from The Register: it seems that Salesforce.com has announced a set of application migration tools to move Notes/Domino applications over to their hosted platform. They are doing so, in part, because Exchange is displacing Notes for e-mail, but the broader MS collaboration platform is not necessarily displacing Notes applications– at least according to the article; they don’t cite any statistics to back it up.

Comments Off on Salesforce.com poaches Notes accounts

Filed under UC&C

HOWTO rename a project in Xcode

Geez, I never would have figured this out on my own. Xcode has its strengths, but it’s certainly a much different beast than Visual Studio, which I still prefer. Anyway, if you want to rename an Xcode project, you can’t just change the project name in the Finder; you have to modify a bunch of the project metadata too. See these steps for complete details.

Comments Off on HOWTO rename a project in Xcode

Filed under General Tech Stuff

Carolina Smoke

I’m teaching a developer-focused class, and the organizers put together a group dinner last night. It was catered by David Hayward from Carolina Smoke, and the food was fantastic! Rarely have I had better BBQ. I had a big plate of ribs, pork, salmon, baked beans, and brisket: all smoked, all delicious. I went back for more beans and a second piece of sweet cornbread. On top of the excellent food, David mingled with the crowd, telling jokes and both enduring and dispensing ragging about various styles of BBQ. (My favorite: the two guys from the UK at my table who’d never had Southern-style BBQ before!) I want to see if they can cater our next company outing– that’s how good it was.

Comments Off on Carolina Smoke

Filed under Reviews

A shout out to Peggy

Major props to Peggy Simon, family friend and regular reader! (Betty says hello, too.)

1 Comment

Filed under Friends & Family

HOWTO make NSURLConnection ignore bad certificates

I’m working on a demo application that uses Exchange Web Services from Cocoa, Apple’s object-oriented OS framework. Cocoa is a really interesting environment, with a lot of very cool capabilities. One thing it can’t do, though, is give your application a way to examine a returned certificate that the framework thinks is bad. The certificate might appear to be bad because it’s expired or invalid, or merely because it’s self-signed (or issued by another untrusted CA). Because many Exchange servers will have self-signed certificates, the demo app won’t work on them without a way to finesse this problem. Because it’s just a demo application, I didn’t want to require the user to add the self-signed certificate to their certificate trust list, and I didn’t want to turn off certificate checking completely (if that’s even possible).

The answer, which I found here, is to override a private, unsupported, category method, allowsAnyHTTPSCertificateForHost. Just call it with the FQDN of the host whose certificate errors you want to ignore and you’re golden.

2 Comments

Filed under General Tech Stuff

Final Salute (Sheeler)

I’ve read a fair number of books about the war in Iraq and Afghanistan. Some have been written by soldiers and Marines, others by analysts or journalists. Final Salute: A Story of Unfinished Lives is the most important book I have yet read. Written by the Rocky Mountain News‘ Jim Sheeler, Final Salute is a book-length expansion of a newspaper series by the same name. The original series netted Pulitzer Prizes for Sheeler and Todd Heisler, the photographer, but I hadn’t heard of it until recently.

Sheeler has written an incredibly powerful and moving book centering on perhaps the hardest job in the military: the casualty assistance calls officer whose job is to notify families that they have lost a loved one. Marine Major (now LtCol) Steve Beck had this role for Colorado and Wyoming, and the book chronicles his visits to a number of Marine and Navy corpsman families. Beck is totally committed to this job, and his dedication in support of the families is awe-inspiring.

We don’t get much of a sense of Beck as a person (apart from his obvious integrity and devotion to the Marine Corps and his country), but the same cannot be said of the families Sheeler interviews. Their anguish comes through clearly, but so do their love and pride, and even their esprit de corps. From Indian reservations to Denver suburbs, the families span a wide range of backgrounds and situations.

I admire the deft way in which Sheeler elicits their feelings without seeming intrusive or angering them, and I very much appreciate his political neutrality. This isn’t a book about leaders or government; it’s a book about leadership, principle, and sacrifice. Sheeler writes economically, without a lot of needless embellishment or soppy sentimentality. He’s not flowery, and that makes his prose hit all the harder. I’m not ashamed to say that I cried at several points during the book, but reading it simultaneously renewed my pride in the Marine Corps and in our remarkable nation.

Whatever your political affiliation, whatever your view on the war, I urge you to read this book to get an idea of the kinds of sacrifices that your fellow Americans are making on your behalf. Highly recommended.

Comments Off on Final Salute (Sheeler)

Filed under Reviews

Podcasting Kit for SharePoint goes live!

I’ve been wanting to blog about this for a while, but we had to keep the lid on until today. Microsoft just announced the Podcasting Kit for SharePoint (PKS), primarily developed by 3Sharp. PKS is a completely integrated kit that lets you use SharePoint as an enterprise-scale podcasting aggregator and management system. You can publish your own internal podcasts, plus you can catch and redistribute podcasts from other sources. Wherever their origin, the podcasts you manage with PKS can be rated by users, tagged using tag clouds, and played back using Silverlight so that you don’t need a separate podcasting device or application. We’ve already implemented PKS internally and will shortly be rolling out a PKS portal stuffed full of tasty IT Pro content– check our web site for updates.

Comments Off on Podcasting Kit for SharePoint goes live!

Filed under General Tech Stuff, UC&C

Great article on investigative reporter

Brooke Adams of the Salt Lake Tribune handles the polygamy beat for the paper. Yes, that’s right; the Trib has a dedicated reporter who researches and writes stories about polygamists. Because of her topical knowledge, she’s written some very interesting stories about the Texas polygamy case. Alone among her peers, Adams challenged the legality of Texas’ raid on the FLDS compound, pretty much from the start. This Poynter article has a great Q&A with Adams– well worth reading. How I wish we had more investigative reporters like her, and fewer like the kind we see on FoCNMSNBC.

Comments Off on Great article on investigative reporter

Filed under General Stuff

Amazon puts MP3 albums on sale

One of the record companies’ major beefs with Apple is that Apple won’t let them charge variable prices. One of the chief reasons that Amazon was able to get permission to sell non-DRM MP3 files is because they do in fact use variable pricing. That means, of course, that Amazon can offer things on sale from time to time. Today I picked up Weezer’s Pinkerton for $2 and Led Zeppelin’s Mothership for $5– significantly cheaper than buying the album, or the individual tracks, from iTunes. The only way I know of to get notified of these sales is to sign up for Amazon’s MP3 newsletter (or check slickdeals.net daily, which is what I do).

Comments Off on Amazon puts MP3 albums on sale

Filed under General Stuff, General Tech Stuff

HOWTO generate a fake Exchange UM message

When you get a voice mail message from an Exchange 2007 unified messaging server, it gets a unique message type that allows Outlook 2007 and OWA 2007 to represent it as a voice mail. In the UC Metro class I’m teaching in Toronto, someone asked me whether it was possible to create a “fake” voice mail message– in other words, is there some way to create a message from an external application that appears to be a voice message in Exchange UM-aware clients? His question made sense given that his company makes applications that already do voice integration for various things, so I did some digging (by which I mean “I asked some folks on the UM team”). Here’s the deal.

Outlook and OWA use the PidTagMessageClass property to help them decide whether a message is a voice mail. I never would have known this except for the Voice Mail and Fax Objects Protocol Specification, part of the massive spec dump Microsoft unleashed last month. Section 2.1.2.1 explains the possible values for PidTagMessageClass; subsequent sections describe how you must prepare and attach the actual audio content to the message. However, the spec doesn’t explain exactly how to set the message class in the first place; to do that you’ll need to either have mad MAPI skillz (translation: pay Dimitri and use Redemption) or set it yourself using Exchange Web Services and the attribute documentation that tells you which properties have which tags. (Update: For real voicemails, the properties are set by the store’s content conversion engine when the message is accepted at the recipient mailbox. I haven’t tested to see what happens if you submit a message that meets the spec by using SMTP; it would be interesting to know if the properties are correctly applied in that case.)

In a related note, if you’ve ever wondered where the Outlook audio notes field data is stored, check out the PidNameAudioNotes attribute.

Update: each UM user has to have an Exchange Enterprise CAL. That means that anyone to whom you send synthetic VMs to has to have the Enteprise CAL as well, even if they’re not otherwise using UM.

Comments Off on HOWTO generate a fake Exchange UM message

Filed under HOWTO, UC&C