Tag: automx

automx and multiple domain names

in meinem ersten beitrag zu automx hatte ich ganz zum schluss geschrieben, dass es der autodiscover funktion von microsofts outlook noch ein bischen erklaerung bedarf. da die tage auf der automx mailingliste diese frage auftauchte, poste ich meine kurze antwort auch mal hier…

das wesentliche steht in einem technet blog.

autodiscover in seiner urspruenglichen variante fragt einen webserver nach den konfigurationsdaten fuer outlook ab. dabei wird der domainpart (microsoft nennt das “smtpdomain”) der mailadresse genutzt und in dieser reihenfolge nach der konfiguration gesucht:

https:///Autodiscover/Autodiscover.xml
https://autodiscover./Autodiscover/Autodiscover.xml
http://autodiscover./Autodiscover/Autodiscover.xml

fuer betreiber mehrerer domains (z.b. hoster) ist das mit dem ssl etwas schwierig, da fuer jede dieser domains ein eigener vhost mit einem eigenen zertifikat eingrichtet werden muesste. die variante ohne ssl verschluesselung will man nicht nutzen, da es um sensible daten geht.

seit outlook 2007 ist ein neues feature zum autodiscover mechanismus dazu gekommen, welches es mittels eines SRV dns eintrages erlaubt, eine weiterleitung zu einem autodiscover server zu machen, der z.b. nicht der “smtpdomain” der emailadresse entspricht. an der urspruenglichen reihenfolge des mechanismuses aendert sich nichts – der SRV record wird zum schluss abgefragt:

https:///Autodiscover/Autodiscover.xml
https://autodiscover./Autodiscover/Autodiscover.xml
http://autodiscover./Autodiscover/Autodiscover.xml
SRV record query for _autodiscover._tcp.

ein beispiel von der microsoft seite, wie dieser mechanismus greift:

    1. Autodiscover sendet an “https://contoso.com/Autodiscover/Autodiscover.xml”. Hierbei tritt ein Fehler auf.

    2. Autodiscover sendet an “https://autodiscover.contoso.com/Autodiscover/Autodiscover.xml. Hierbei tritt ein Fehler auf.

    3. Autodiscover führt die folgende Überprüfung auf automatische Umleitung durch:
    GET http://autodiscover.contoso.com/Autodiscover/Autodiscover.xml
    Hierbei tritt ein Fehler auf.

    4. Autodiscover verwendet die DNS-SRV-Suche für “_autodiscover._tcp.contoso.com”, und es wird “mail.contoso.com” zurückgegeben.

    5. Der Benutzer wird von Outlook aufgefordert zu bestätigen, dass Autodiscover weiterhin an “https://mail.contoso.com/autodiscover/autodiscover.xml” senden soll.

    6. Die POST-Anforderung von Autodiscover wird erfolgreich an “https://mail.contoso.com/autodiscover/autodiscover.xml” gesendet.

outlook bringt dann aber eine etwas unschoene meldung:

20140823_autodiscover

dazu gibt bei microsoft auch was zu lesen.

was auch unschoen ist: mit allen von mir getesteten outook versionen bekommt man nach dem autodiscover keine auswahl zwischen pop3 und imap (wenn man beides anbietet), sondern es wird der erste eintrag genommen. bei einem mailclient wie z.b. thunderbird kann man zwischen den beiden protokollen auswaehlen, wobei hier das erste in der autoconfig “auslieferung” der default wert ist. wer seinen benutzern imap als default anbieten will und den outlook nutzern pop3, der muss sich zwei instanzen von automx einrichten. dank verschiedener urls fuer outlook und den rest der welt stellt das kein problem dar. und es gibt sehr viele gute gruende, seinen outlook nutzern undbedingt pop3 statt imap vorschreiben zu wollen.

automx howto ergaenzung

damit ich es irgendwann mal wieder finde… als ergänzung zu dem automx howto:

auf einem debian system werden noch folgende, zusaetzliche python module benoetigt:

apt-get install libapache2-mod-wsgi python-mysqldb python-dateutil python-ipaddr python-lxml python-memcache python-m2crypto python-sqlalchemy

in der apache konfiguration wird ausserdem noch diese option benoetigt:

Options +MultiViews

automx howto

gaengige mailclients beherrschen heute die automatische konfiguration der einstellungen anhand der eingegebenen benutzerdaten (emailadresse und passwort).

335x80xlogo_automx

das projekt automx.org hat sich der “sache” angenommen, damit nicht jeder sein setup selber erfinden muss. die insstallation gestaltet sich (stand heute) etwas schwierig, da die dokumentation nicht ganz up to date ist. ein debian paket fuer die aktuelle version gibt es derzeit nicht, aber ich konnte mir mit ein paar kruecken mit dem ubuntu paket auf meinem squeeze weiterhelfen. da ich mir nicht notiert habe, was ich zur installation alles gemacht habe, beschreibe ich das hier auch nicht naeher. ich denke mal, dass jeder, der ein solches setup haben will auch ein bischen vorwissen und basteltrieb bzgl. linux und softwareinstallation hat 😉

ausgegangen von folgendem setup: eine domain, postfix mit mysql backend – ergibt sich fuer mich folgende configdatei (/etc/automx.conf – basierend auf automx version 0.9, relevante kommentare in der datei selbst)

[automx]
provider = domain.tld
# alternativ zum wildcard (*) koennen die domains mit
# komma getrennt angegeben werden
domains = *

debug = yes
# verzeichnis muss erstellt werden und owner der webserver 
# user sein. berechtigung 750. 
# logrotate nicht vergessen zu konfigurieren!
logfile = /var/log/automx/automx.log

# Protect against DoS
# default einstellungen
memcache = 127.0.0.1:11211
memcache_ttl = 600
client_error_limit = 20
rate_limit_exception_networks = 127.0.0.0/8, ::1/128

# The DEFAULT section is always merged into each other
# section. Each section can overwrite settings done here.
[DEFAULT]
account_type = email
account_name = domain.tld
account_name_short = domain.tld

# If a domain is listed in the automx section, it may have 
# its own section. If none is found here, the global section 
# is used.
[global]
backend = sql
action = settings

# datenbankverbindung
host = mysql://user:password@dbserver.domain.tld/databse

# die abfrage muss den eigenen begebenheiten angepasst werden
query = SELECT user FROM qry_mailaddresses WHERE user='%s';

# das ergebnis mit "result_attrs" einer variablen zuweisen
# mehrere spalten im ergebnis mit komma getrennt
# im weiteren kann diese variable so benutzt werden: ${user}
result_attrs = user

smtp = yes
smtp_server = mail.domain.tld
smtp_port = 25
smtp_encryption = starttls
smtp_auth = plaintext
smtp_auth_identity = ${user}
smtp_expiration_date = 20131231
smtp_refresh_ttl = 6
smtp_default = yes

pop = yes
pop_server = mail.domain.tld
pop_port = 995
pop_encryption = ssl
pop_auth = plaintext
pop_auth_identity = ${user}
pop_expiration_date = 20131231
pop_refresh_ttl = 6

imap = yes
imap_server = mail.domain.tld
imap_port = 993
imap_encryption = ssl
imap_auth = plaintext
imap_auth_identity = ${user}
imap_expiration_date = 20131231
imap_refresh_ttl = 6

hinweis: die reihenfolge der einstellungen bestimmt auch die default auswahl im mailclient. d.h. wenn der bereich mit den imap einstellungen vor pop genannt wird, zeigt z.b. thunderbird imap und pop3 als option an, aber imap ist als standard ausgewaehlt… und umgekehrt.

damit die mailclients den service finden, muessen in der entsprechenden zone (hier domain.tld) folgende eintraege gemacht werden (natuerlich an die eigenen gegebenheiten angepasst):

autoconfig      IN    A     xxx.xxx.xxx.xxx
autodiscover    IN    A     xxx.xxx.xxx.xxx

in der apache konfiguration ist entgegen der anleitung die datei “automx.wsgi” zu ersetzen durch “automx_wsgi.py”. meine apache config sieht dann ungefaehr so aus:


  ServerName autoconfig.domain.tld
  ServerAdmin webmaster@domain.tld
  
    WSGIScriptAlias /mail/config-v1.1.xml /usr/local/lib/automx/automx_wsgi.py
    
      Order allow,deny
      Allow from all
    
  



  ServerName autoconfig.domain.tld:443
  ServerAdmin webmaster@domain.tld
  
    WSGIScriptAlias /Autodiscover/Autodiscover.xml /usr/local/lib/automx/automx_wsgi.py
    WSGIScriptAlias /autodiscover/autodiscover.xml /usr/local/lib/automx/automx_wsgi.py
    
      Order allow,deny
      Allow from all
    
  

das entsprechende modul wsgi muss natuerlich installiert und anschliessend mit diesem befehl aktiviert werden:

a2enmod wsgi

apache neu starten und gut.

mit dem mitgelieferten prograemmchen “automx-test” und der mailadresse als parameter kann man das ergebnis ueberpruefen. alternativ kann man z.b. die autoconfig url manuell aufrufen und sich das ergebis im browser ansehen:

https://autoconfig.domain.tld/mail/config-v1.1.xml?emailaddress=bla@domain.tld

das ergebnis sollte mit obiger config dann so aussehen:


  
    domain.tld
    domain.tld
    domain.tld
    
      mail.domain.tld
      25
      STARTTLS
      password-cleartext
      bla@domain.tld
      yes
    
    
      mail.domain.tld
      995
      SSL
      password-cleartext
      bla@domain.tld
    
    
      mail.domain.tld
      993
      SSL
      password-cleartext
      bla@domain.tld
    
  

und dann kanns losgehen… z.b. mit dem thunderbird ein neues mailkonto anlegen:

20130325_automxtest1

wenn da geschrieben steht: “Einstellungen wurden bei Ihrem Anbieter des E-Mail-Dienstes geunden”, funktioniert das ganze. wie oben beschrieben, ist hier nun pop3 vorausgewaehlt, weil pop3 in der xml antwort vor imap genannt ist.

20130325_automxtest2

ein klick auf “Manuell bearbeiten” gibt alle details preis. idealerweise genau so, wie sie von automx zurueck gegeben werden 😉

20130325_automxtest3

(und im gegensatz zu outlook stimmen hier auch die einstellungen, wenn man manuell auf imap umstellt. aber outlook und das microsoftsche autodiscover ist sowieso ein ganz anderes thema. das wird ein gesonderter und wahrscheinlich langer blog eintrag mit vielen wenns und abers. und in einer “multidomain umgebung” ists dann ganz vorbei mit lustig…)