| by Mark | No comments

Autodiscover mail instellen voor DirectAdmin

Vroeger moest je altijd zelf de servergegevens paraat hebben om je mailadres toe te voegen aan een mailprogramma zoals Outlook, Thunderbird of een ander mail client zoals voor je telefoon/tablet, maar dit is verleden tijd met autodiscover.

Door als hostingpartij/server beheerder een autodiscover mogelijkheid aan te bieden aan je gebruikers/klanten is dit een stuk gebruikersvriendelijker geworden.

Via de onderstaande manieren kun je een Autodisover voor een DirectAdmin paneel instellen:

Microsoft methode

Verander het onderstaande door je eigen gegevens:

  • clientdomain.com de domeinnaam van je client.
  • server.hostname.com voor IMAP en SMTP je eigen servernaam.
  • autodiscover.hostname.com een subdomein voor je eigen domeinnaam.
  1. Een SRV record aanmaken in de DNS zone van de client domeinnaam:

    _autodiscover._tcp.clientdomain.com. 3600 IN SRV 10 10 443 autodiscover.hostname.com.

  2. Maak de subdomeinnaam autodiscover.hostname.com  aan in de DirectAdmin, en voeg daarin de subdomeinnaam map de onderstaande code in een bestand met als bestandsnaam autodiscover.php:

    <?php
    //get raw POST data so we can extract the email address
    $data = file_get_contents("php://input");
    preg_match("/\<EMailAddress\>(.*?)\<\/EMailAddress\>/", $data, $matches);

    //set Content-Type
    header("Content-Type: application/xml");
    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>IMAP</Type>
                   <Server>server.hostname.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>POP3</Type>
                   <Server>server.hostname.com</Server>
                   <Port>995</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>server.hostname.com</Server>
                   <Port>587</Port>
                   <DomainRequired>off</DomainRequired>
                   <LoginName><?php echo $matches[1]; ?></LoginName>
                   <SPA>off</SPA>
                   <Encryption>TLS</Encryption>
                   <AuthRequired>on</AuthRequired>
                   <UsePOPAuth>off</UsePOPAuth>
                   <SMTPLast>off</SMTPLast>
               </Protocol>
           </Account>
       </Response>
    </Autodiscover>

    Houdt rekening mee dat de SRV record poort 443 gebruikt voor  autodiscover.hostname.com, dus zorg dat je een geldig certificaat is ingesteld voor dat subdomeinnaam.
    Je kunt het testen door naar https://autodiscover.hostname.com te gaan om zeker te zijn dat jee een groene slotje in de browser ziet staan. Het script zoekt voor XML input in het  <EMailAddress> tag om daar de de <LoginName> in het resultaat veld toe te voegen.

    Mocht het nodig zijn, dan kun je SMTP poort 465 instellen, maar dan moet je de <Encryption> van TLS naar SSL instellen, als het protocol anders is dan 465.
    Poort 587 heeft smtp-auth nodig maar slaat sommige spam controles over en gebruikt STARTTLS om SSL te activeren.  Poort 465 is volledig SSL maar de clients hebben wellicht problemen met verzenden als hun IP/range in een RBL (een e-mail blacklist) voorkomt.  
  3. Als laatst, moeten we een .htacces bestand aanmaken zodat alle verzoeken naar autodiscover.hostname.com subdomein resultaten verwijst in de autodiscover.php wordt aangeroepen. In de subdomeinen DocumentRoot, voeg de onderstaande code toe:

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

Thunderbird methode

Hou je niet van de Microsoft auto-detect manier? Thunderbird doet het op een directe manier via:

http://autoconfig.clientdomain.com/mail/config-v1.1.xml?emailaddress=user@domain.com

Dit kan ingesteld worden door een subdomein genaamd “autoconfig” aan te maken en in de web gedeelte voor deze subdomeinnaam een map genaamd “mail” aan te maken. En in deze map “mail” structuur een bestand genaamd config-v1.1.xml aan te maken.  Een voorbeeld bestandstructuur in de Verkenner zal als volgende uitzien:

/domains/clientdomain.com/public_html/autoconfig/mail/config-v1.1.xml

Plaats de onderstaande code in het bestand:

<clientConfig version="1.1">
 <emailProvider id="clientdomain.com">
   <domain>clientdomain.com</domain>
   <displayName>%EMAILADDRESS%</displayName>
   <incomingServer type="imap">
     <hostname>mail.clientdomain.com</hostname>
     <port>993</port>
     <socketType>SSL</socketType>
     <username>%EMAILADDRESS%</username>
     <authentication>password-cleartext</authentication>
   </incomingServer>
   <outgoingServer type="smtp">
     <hostname>smtp.clientdomain.com</hostname>
     <port>587</port>
     <socketType>STARTTLS</socketType>
     <username>%EMAILADDRESS%</username>
     <authentication>password-cleartext</authentication>
   </outgoingServer>
 </emailProvider>
</clientConfig>

Bronvermelding

Autodiscover information for mail clients to setup pop/imap/smtp settings automatically.

Geef een antwoord