Zimbra NG Modules/Zimbra NG Mobile/Autodiscover


Zimbra NG Mobile - Autodiscover

The Autodiscover feature

At the beginning of the account creation process on any mobile devices, the client will try to autonomously detect the URL, domain and username before asking the user for an imput.

Zimbra NG Mobile provides its own Autodiscover handler in order to make this feature available in all supported version of Zimbra.

The Autodiscover feature will return the value of the "zimbraPublicHostname" domain property. Should such property be empty, it will fall back to the value of the "zimbraServiceHostName" server property.

The domain name is either sent explicitly by the client or deduced by the http/s request sent by the mobile phone.

Setting up Autodiscover

In order to be functional, the Autodiscover feature needs both a dedicated DNS record and a change in Jetty's configuration.

Step 1: DNS records

Two options are available:

  • DNS A record: either create a DNS A record or a DNS CNAME record for autodiscover.[yourdomain.com], whose target must be the mailserver (or the appropriate proxy in case of a multistore infrastructure). In order for SSL to be properly functional, you'll either need a wildcard SSL certificate for [yourdomain.com] or to declare "autodiscover.[yourdomain.com]" as a Certificate Subject Alt Name within your certificate.
  • DNS SRV record: create a new SRV record like the following:
Service: _autodiscover
Protocol: _tcp
Port Number: 443
Host: [mail.yourdomain.com]

Step 2: Jetty configuration


This changes are not guaranteed to survive a Zimbra update. Depending on the contents of the update you might need to manually re-apply this changes.

Based on your Zimbra major release, apply one of the following changes.

A restart of Zimbra's mailboxd service is needed for the new configuration to become active. You can do so by running `zmmailboxdctl restart` as the zimbra user.

Zimbra 8.x (v8.0.3 and older)


Locate the following block...

<Call name="addRule">
        <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
            <Set name="pattern">/Microsoft-Server-ActiveSync/*</Set>
            <Set name="replacement">/service/extension/zimbrasync</Set>

... and add the following lines after it:

<Call name="addRule">
        <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
            <Set name="pattern">/Autodiscover/*</Set>
            <Set name="replacement">/service/extension/autodiscover</Set>
<Call name="addRule">
        <New class="org.eclipse.jetty.rewrite.handler.RewritePatternRule">
            <Set name="pattern">/AutoDiscover/*</Set>
            <Set name="replacement">/service/extension/autodiscover</Set>

This will redirect all possible Autodiscover calls to the correct handler.

Zimbra NG Modules


Latest Version: 8.8

Zimbra NG Modules Resources

Here you can find useful resources for your Zimbra NG Modules

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search