Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The autodiscover method used by Exchange looks great. However I do not have Exchange.

It looks like when setting up a mail account the device/mail client looks for a autodiscover.xml file.

Is there a way to create such a file by myself and serve it on a usual Linux server, pointing to a usual mail Linux server?

share|improve this question
up vote 10 down vote accepted

First you will need to tell Outlook where to go. Use an SRV record in DNS that points to the server containing your Autodiscover.xml file:

_autodiscover._tcp.mydomain.com. 3600 IN SRV  10 10 443 my-web-server.mydomain.com.

Use the PHP script here: http://virer.net/info/ol-autodiscover/index.html to return the Autodiscover.xml file to clients. It has some PHP embedded so you can return different values depending on the e-mail address entered into Outlook. (Good for if you host multiple domains for multiple clients).

Once that script is on your webserver and working, make sure you enable HTTPS with a valid certificate so Outlook doesn't throw errors when trying to download it.

share|improve this answer

Just finished configuring autodiscover on my Linux server. Now mail is setup automatically in almost all possible clients.

Here is an easy solution to setup Autodiscovery with POP3/IMAP settings;

DNS:

_autodiscover._tcp.yourdomain.com. 3600 IN SRV  10 10 443 mail.yourmx.com.

PHP (autodiscover.php):

<?php
preg_match("/\<EMailAddress\>(.*?)\<\/EMailAddress\>/", $data, $matches);

//set Content-Type
header("Content-Type: application/xml");
?>
<?php echo '<?xml version="1.0" encoding="utf-8" ?>'; ?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>POP3</Type>
<Server>mail.yourmx.com</Server>
<Port>995</Port>
<LoginName><?php echo $matches[1]; ?></LoginName>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<DomainRequired>off</DomainRequired>
</Protocol>
<Protocol>
<Type>IMAP</Type>
<Server>mail.yourmx.com</Server>
<Port>993</Port>
<DomainRequired>off</DomainRequired>
<LoginName><?php echo $matches[1]; ?></LoginName>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<Server>mail.yourmx.com</Server>
<Port>465</Port>
<DomainRequired>off</DomainRequired>
<LoginName><?php echo $matches[1]; ?></LoginName>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<UsePOPAuth>on</UsePOPAuth>
<SMTPLast>off</SMTPLast>
</Protocol>
</Account>
</Response>
</Autodiscover>

.htaccess :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ autodiscover.php [NC,L]

NB! Remember to get a SIGNED SSL Cert.

share|improve this answer

Actually if your clients are Outlook (I'll assume that because you said they are looking up autodiscover.xml) you want to use Guessmart for autoconfiguration if you're using POP/IMAP and SMTP. Guessmart is basically Outlook using your email address and password to try various hostnames using common POP/IMAP/SMTP ports until it finds one it can successfully log into. It's the same user experience in Outlook as Autodiscover but meant for non Exchange servers.

You can test all this in Outlook by ctrl-right-clicking the notification tray Outlook icon and selecting "Test Email Autoconfiguration". Uncheck the Autodiscover and test Guessmart to see how Outlook works.

share|improve this answer
    
I noticed the autodiscover.xml stuff once. But Thunderbird is trying to "guess" what servers are used for pop/imap as well. Sometimes it guesses it wrong. I think Apple products do it this way too. I would like to know if something standardized exsists for most email clients on the market. Cause people Have no idea and don't care what smtp, pop or imap stands for. Hope it helps. – SamK Mar 8 '11 at 16:59

Ah - only if your Linux server looks like an exchagne server. This is not "use open api" it is "use exchange internal api".

share|improve this answer
1  
The API is documented, and it's possible to manually create the AutoDiscover.xml file and serve it with Apache or any other web server. – Jesse Weigert Jul 6 '12 at 0:28
1  
It my be documented, but it still is not "open" as in "an open specification". It is - as i said - making the linus server look like an exchange server. – TomTom Oct 27 '13 at 8:05

No, Autodiscover is specific to Exchange, you won't get that working outside of that environment.

It's not just the .xml file, there are a lot of things at play when it comes to Autodiscover.

To give you some quick background, read through this article, and you will get a better idea of it.

http://www.msexchange.org/articles_tutorials/exchange-server-2010/management-administration/exchange-autodiscover.html

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.