Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

5 Answers 5

up vote 3 down vote accepted

@DanBig is incorrect. Look here for a decent sample on returning an Autodiscover.xml file in PHP on Linux: http://virer.net/info/ol-autodiscover/index.html

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
    
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
    
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.