I recently found out that the autodiscovery process in Android's email application is incomplete. It will only query https://domain.com/autodiscover/autodiscover.xml and https://autodiscover.domain.com/auto...todiscover.xml
I know this because I checked the source.

I only have a trusted certificate for mail.mydomain.com, so I need to tell the activesync client this. The people at Microsoft thought of a way to do this, but it involves querying an SRV-record in DNS (host -t srv _autodiscover._tcp.domain.com).
This is not done by the email-client in Android.

The full procedure for autodiscovery is described here:
http://technet.microsoft.com/en-us/l...CHG.80%29.aspx


This is the code I found on http://android.git.kernel.org

EasSyncService.java
Code:
            // There are up to four attempts here; the two URLs that we're supposed to try per the
            // specification, and up to one redirect for each (handled in postAutodiscover)
            // Note: The expectation is that, of these four attempts, only a single server will
            // actually be identified as the autodiscover server.  For the identified server,
            // we may also try a 2nd connection with a different format (bare name).

            // Try the domain first and see if we can get a response
            HttpPost post = new HttpPost("https://" + domain + AUTO_DISCOVER_PAGE);
            setHeaders(post, false);
            post.setHeader("Content-Type", "text/xml");
            post.setEntity(new StringEntity(req));
            HttpClient client = getHttpClient(COMMAND_TIMEOUT);
            HttpResponse resp;
            try {
                resp = postAutodiscover(client, post, true /*canRetry*/);
            } catch (IOException e1) {
                userLog("IOException in autodiscover; trying alternate address");
                // We catch the IOException here because we have an alternate address to try
                post.setURI(URI.create("https://autodiscover." + domain + AUTO_DISCOVER_PAGE));
                // If we fail here, we're out of options, so we let the outer try catch the
                // IOException and return null
                resp = postAutodiscover(client, post, true /*canRetry*/);
            }
I already wrote the coder of Android's email application (Marc Blank) an email, but I didn't get a reply.

I am not a java-developer nor do I have write access for Android's source code (obviously). Is there anyone here on this board who can help me to get this full procedure incorporated into Android's code?