Allows email server autodiscovery with Outlook and Thunderbird on non-Exchange servers.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
neil f1a1442b57 adding support for thunderbird's GET parameters on autoconfig 2 weeks ago
src adding support for thunderbird's GET parameters on autoconfig 2 weeks ago
templates fixing unsafe link 3 weeks ago
.gitignore Initial commit 3 weeks ago
Cargo.toml adding xml parser for microsoft's autodiscover 2 weeks ago
LICENSE Initial commit 3 weeks ago
README.md replacing domain names in readme 2 weeks ago
config.toml removing debug mode, not as effective as I thought 2 weeks ago

README.md

autodiscover

Allows email server autodiscovery with Outlook and Thunderbird on non-Exchange servers.

If you host an email server, you want it to be compatible with all kinds of clients. You don’t want your end user to enter manually the email configuration for their email address.

With Thunderbird and software using the same standards, you can just use the autoconfig file. Sadly, on Outlook, Apple Mail and Apple phones, it doesn’t work the same.

Outlook uses an undocumented, proprietary protocol called Autodiscover, that is made to only work on Outlook Exchange servers. This software attempts to reimplement this protocol, so your free-software based mail server works out-of-the-box with Outlook clients.

Apple mobile phones uses the mobileconfig file which is again, poorly documented.

Supported clients

  • (Not yet tested) Outlook clients, Thunderbird and free software alternatives (KDE mail clients), Apple Mail, Apple phone mail app

Setup

The application

Git clone then build with Cargo, like a regular Rust application.

The server

Run the application on your server, then make it listen to those two virtual hosts:

  • autodiscover.mydomain.com
  • autoconfig.mydomain.com

The best way to do so is to use a reverse proxy, which can also handle HTTPS.

DNS records

You have to create a lot of DNS records to make autodiscovery work for all clients. Be sure to double check every entry.

  • Replace mydomain.com with your own domain.
  • Replace 1.2.3.4 with your server’s IP address.

On the mail server’s domain

All of those entries should be recorded on your main domain.

autoconfig           86400 IN CNAME  autodiscover.mydomain.com.
autodiscover         86400 IN A      1.2.3.4
_imap._tcp           86400 IN SRV    0 0 143 mail.mydomain.com.
_imaps._tcp          86400 IN SRV    0 0 993 mail.mydomain.com.
_pop3._tcp           86400 IN SRV    0 0 110 mail.mydomain.com.
_pop3s._tcp          86400 IN SRV    0 0 995 mail.mydomain.com.
_smtp._tcp           86400 IN SRV    0 0 25 mail.mydomain.com.
_smtps._tcp          86400 IN SRV    0 0 465 mail.mydomain.com.
_submission._tcp     86400 IN SRV    0 0 587 mail.mydomain.com.
@                    86400 IN TXT    "mailconf=https://autodiscover.mydomain.com/mail/config-v1.1.xml"

(To complete)

On a “customer” domain

Those entries should be added to any other domain using your mail server.

(To complete)

This project is fully and shamelessly inspired of the following projects:

This software is a rewrite of those projects in Rust with the Actix framework, so no PHP interpreter or Javascript is needed.