WebOS to Horde5

In this short-lived times, many is forgotten easily… but they are out there. Hiding. Hoping. Trying to survive. Maybe you remember… Palm! WebOS! The famous line of “Palm Pre” phones, the HP TouchPad.

When it comes to mobile devices, I still remain a fan of these, especially my HP Pre3 is a daily companion. And that TouchPad, gee, what a bargain. Unlike many others, I’ve not installed Android OS on it, but still run the original WebOS (as original as it gets when you give a device to a Linux command line addict and make most of the applications modifiable via a simple editor 😀 ). As of lately, I’ve come to enjoy them both even more.

Now that we have a working installation of Horde 5 connecting to our Kolab-based back-end, I started looking into mobile access to those e-mails and dates, address book entries and tasks.  Horde 5 comes with support for the ActiveSync protocol including e-mail, and WebOS supports this right out of the box. OK, it took a bit of “encouragement” to drive back some small but nasty bugs, but with those very responsive Horde developers, the issues were resolved easily and whatever bug there still may be, hides fairly unseen in the background.

Setting up the Horde installation

Adding support for ActiveSync went pretty straight-forward and is documented in the Horde Wiki. In our case, the main change was to add

# ActiveSync support
Alias /Microsoft-Server-ActiveSync /srv/www/htdocs/horde5/rpc.php

to our http server configuration.

To make things even easier, we decided to implement auto-configuration support as well (read on for some interesting detail), which required both another change to the http server configuration

ServerAlias autodiscover.company.com
Alias /autodiscover/autodiscover.xml /srv/www/htdocs/horde5/rpc.php

as well as a new DNS entry:

autodiscover.company.com 7200 IN CNAME webmail.company.com

(where “company.com” is obviously the TLD of the company and “webmail.company.com” the host where this Horde 5 installation is made available.)

 Configuring the WebOS devices

I mentioned that I work with both a Pre3 and a TouchPad, and until I tried the ActiveSync auto-configuration, both devices worked equally well.

To add the new service, you simply go to the accounts manager on the settings page (TouchPad) or system page (Pre3), press the “add account” button and select “Microsoft Exchange” as the account type.

On the next screen, you’ll be asked to enter your e-mail address and password. In case of the TouchPad, there’s a user name entry field, pre-filled with the email user name (the part left of the “@”). With the e-mail address and password filled in, you may press the “login” button below the entry fields.

When you follow these steps on the Pre3, with its older version of WebOS than the TouchPad, you most likely will be taken to the card where you can configure individual settings. In other words, ActiveSync auto-configuration does not work yet with the above setup. I don’t believe this to be a Horde bug, as there’s not even a single request reaching that server, but rather some requirement to set up DNS differently, i.e. adding a SRV record. It has not yet been important enough to chase down, but if some of you readers knows more about how the Pre3 tries to determine the autoconfig host, please let us know by adding a comment.

You might need to choose to go the the manual setup card explicitly, by selecting the appropriate button on the email/password card. This is required when you i.e. have not set up your Horde server or DNS to support auto-configuration. On that card you will find the fields to enter the server URL (I strongly recommend to stick with https, i.e. https://webmail.company.com, but http will work, too), a domain name (which can be left empty in case of Horde), your user name (may be prefilled with the value from the previous card) and your password (may again be prefilled if the value entered previously). After pressing “login”, you should get to the same page as when auto-configuration was available.

The last card lets you name the account and to control which applications should use that account’s data: E-mail, address book, address search, calendar and tasks are available on the Pre3, while the TouchPad lacks the “tasks” option (as it lacks the whole “tasks” application, which is still available on the older WebOS version of the Pre3).

Once you pressed the “create button”, the account is added to your WebOS device. After a short delay (or swiping away the card), the selected account data is synced from the Horde server and available on your device.


There are a few customization items one the WebOS side of things that are worth mentioning:

  • In the email application, you can configure the sync frequency, notifications and the signature used when sending emails, by selecting “setup and accounts” from the application menu: Notifications can be changed when clicking on the ringer icon next to the account name; the other settings are available by clicking on the account name itself.Especially the sync frequency has a major influence on the battery run time – the default is to constantly poll the server, which drains energy and puts some (minor) load on the server. I’ve set that to 15 or 30 minutes, depending on the device.

    If you’re missing older e-mails in your inbox,  it might not be an error but because of the configured age limit, which defaults to only retrieve e-mails no older than three days.

    From what I’ve seen the signature can be added with the standards-conforming “– ” line, but as WebOS sends HTML e-mails, that will be transformed to HTML entities, totally opposing the original purpose.

    When you manually sync any e-mail folder, please remain patient for a few seconds after pressing the resync button: It can take a moment until the spinning update notification will show in the header line… and the actual sync may take even more time, depending on your server connection and folder content.

  • The calendar application will let you select the entry color per calendar in “settings and accounts” (on the Pre3 there’s a “display options” sub-menu where this hides) and gives an option to manually sync the entries in addition to the automatic resync as set in the e-mail application. With UeberCalendar installed on the Pre3, I recommend to additionally add your new account to the default group so you won’t miss any entries when selecting that group.
    When you add a new calendar entry, you may select the account to store the entry into via the drop-down button in the upper right corner. Unfortunately, all ActiveSync accounts are called “Calendar” and of type “Microsoft Exchange” – I recommend to remember the colors you assigned to each account, that’ll be your only change to distinguish them.
  • All your Horde contacts are available with “Just Type” as well as in the contacts application. When you add a new entry, you can select the ActiveSync account by pressing the button in the upper right corner. If it’s a yellowish envelope with a clock in front, then the (or “one of the”) ActiveSync account is already selected and the new entry will get pushed back to Horde.
  • With the tasks application, things get even worse: All ActiveSync accounts are named “Exchange” and there’s no color marker or anything to distinguish… if you have only a single account (like most of the people), that’s not too much trouble… but us others will have to work around this somehow, i.e. by leaving some “identifying task” in each of those lists. When you add a task, you can select the “list” to add to by clicking the “i” symbol – but again there’s no hint on which ActiveSync account you’re actually adding to, so you have to rely on the fact that adding a new task while display a specific list, will preselect that list for you.
  • Notes (from the notes application) aren’t synced, probably a limitation of the ActiveSync protocol.

When looking at Horde, the corresponding applications have settings concerning ActiveSync as well. Mostly it’s about which address book, calendars and tasks to sync, but you can also see when your device(s) completed their last sync, as well as wipe all data from remote. I haven’t tried that feature with my WebOS devices, but according to the Wiki, it will work.

Work in progress

From the Horde point of view, the work is almost completed. As of writing this article, two required changes were not yet published, but only available in the git versions. One dealt with support for our old IMAP server version, and the other one kept tasks created on the mobile devices from being pushed back to the server. The changes were small enough to add them manually to our pear-based test bed, on the other hand, new versions of the code are published to PEAR rather often, so chances are high that those changes have made it there already as you are reading this.

A major PITA has been the oldish version of PHP on our SLES11SP2 test server (php53-5.3.8-0.39.1) – it pretty often dies with a message “Base lambda function for closure not found” (66 times – today!). We’ve created a little helper script to restart the server on these occasions, fair for a test bed with a very low number of users, but definitely a no-go for a production environment. SuSE development has promised a broadly updated PHP release for the next service pack, but until then, we’ll have to test out some other PHP release, either from software.opensuse.org or self-compiled. I’ll post a message when we have decided.


Despite the small problems I still see, generally the ActiveSync link from WebOS to Horde5 has been very successful for me. If you don’t like to host all your data with Google, or are affected by their latest “no money – no ActiveSync” policy change, I recommend to at least give Horde5 a try: It is definitely worth it!

This entry was posted in Horde, Kolab and tagged , , . Bookmark the permalink.

Leave a Reply