<?php
/**
 * 
 * Generate a XML file for Thunderbird mail account autoconfiguration functionality. 
 * @author Paul van der Vlis <paul@vandervlis.nl>
 * @author Arthur Bauman <arhur@bauman.nu>
 * @version 1.0
 */

# test with: https://autoconfig.linuxmail.nl/mail/config-v1.1.xml?emailaddress=test%40r95.nl

if (isset($_GET['emailaddress'])) {
    $email = $_GET['emailaddress'];
    # Check user input.
    if (!(filter_var($email, FILTER_VALIDATE_EMAIL))) {
        die('Not a valid e-mail address.');
    }
}
else {
    die('Wrong parameter.');
}

# echo $email;

# Generate output.
header('Content-type: text/xml');
echo '<?xml version="1.0"?>
<clientConfig version="1.1">
    <emailProvider id="linuxmail.nl">
      <domain>linuxmail.nl</domain>
      <displayName>Linuxmail</displayName>
      <displayShortName>Linuxmail</displayShortName>
      <incomingServer type="imap">
         <hostname>imap.linuxmail.nl</hostname>
         <port>993</port>
         <socketType>SSL</socketType>
         <username>' . $email . '</username>
         <authentication>password-cleartext</authentication>
         <specialUse>
           <Sent>Sent</Sent>
           <Drafts>Drafts</Drafts>
           <Trash>Trash</Trash>
           <Junk>Junk</Junk>
         </specialUse>
      </incomingServer>
      <outgoingServer type="smtp">
         <hostname>smtp.linuxmail.nl</hostname>
         <port>587</port>
         <socketType>STARTTLS</socketType>
         <username>' . $email . '</username>
         <authentication>password-cleartext</authentication>
      </outgoingServer>
    </emailProvider>
    <addressBook type="carddav">
       <username>' . $email . '</username>
       <authentication>http-basic</authentication>
       <serverURL>https://sogo.linuxmail.nl/SOGo/dav/' . $email . '/Contacts/personal/</serverURL>
    </addressBook>
    <calendar type="caldav">
       <username>' . $email . '</username>
       <authentication>http-basic</authentication>
       <serverURL>https://sogo.linuxmail.nl/SOGo/dav/' . $email . '/Calendar/personal/</serverURL>
    </calendar>


</clientConfig>';


