Thunderbird als POP3 und IMAP4 Client

Aus der gleichen Gruppe wie Firefox stammt auch "Thunderbird", ein universeller Mailclient, welcher auch per IMAP4/POP3 mit dem Exchange Server sprechen kann. Interessant ist bei Mozilla aber auch eine Art "Autokonfiguration".

Konto einrichten

Addiert ein Anwender ein Konto, dann fragt Mozilla wie Outlook erst mal nur den Namen (Displayname), die Mailadresse und das Kennwort ab

Danach geht Mozilla her und versucht über folgende Schritte die korrekte Mailkonfiguration zu ermitteln

  • E-Mail-Provider
    Per Netmon ist schön zu sehen, dass Thunderbird per DNS nach der Maildomäne sucht und per HTTP eine XML-Datei herunter landen möchte. (Hostname "%maildomain%" oder "autoconfig.%maildomain%"
Http: Request, GET URI: /.well-known/autoconfig/mail/config-v1.1.xml?emailaddress=frank.carius%40xxnetatworkxx.de
  • Mozilla Datenbank
    Dann stellt Mozilla selbst eine Datenbank mit gängigen Zugangsservern bereit, die von Thunderbird unter der URL https://live.mozillamessaging.com/autoconfig/ angefragt wird.
  • Übliche Namen
    Wenn all das nicht funktioniert, dann versucht Mozilla einfach ein paar "gebräuchliche" Namen per DNS aufzulösen und per POP3, IMAP, SMTP anzusprechen. Gesehen haben ich dabei die Anfragen und Verbindungsversuche nach folgenden Namen.
imap.netatwork.de
smtp.netatwork.de
pop3.netatwork.de
pop.netatwork.de
  • Manuell
    Wenn all das nicht zum Ziel führt, dann muss der Mitarbeiter die Daten von Hand eingeben

Um so eine Funktion also für ihre eigene Exchange Umgebung bereit zu stellen müssen Sie nur eine passende XML-Datei auf ihrem Webserver ablegen, damit Clients diese beziehen können:

<clientConfig version="1.1">
  <emailProvider id="firma.de">
    <domain>firma.de</domain>
    <displayName>firma Mail Server</displayName>
    <displayShortName>firma</displayShortName>
    <incomingServer type="imap">
      <hostname>firma.de</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <authentication>password-cleartext</authentication>
      <Username>%EMAILADDRESS%</Username>
    </incomingServer>
    <outgoingServer type="smtp">
      <hostname>firma.de</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-cleartext</authentication>
      <Username>%EMAILADDRESS%</Username>
    </outgoingServer>
  </emailProvider>
</clientConfig>

Achtung: Das funktioniert nur sauber, wenn der Anmeldename der Userpart der Mailadresse oder die komplette Mailadresse ist. Bei Exchange ist das recht einfach zu realisieren, indem Sie den UPN einfach auf die Mailadresse setzen.

Ich habe hier als Authentifizierung natürlich nun die Exchange 2010 "sicheren" Defaults eingesetzt, d.h. SMTP nur mit StartTLS über den Client Connector auf Port 587 und Abruf per IMAP4S. Im Thunderbird sieht das dann wie folgt aus:

Ausgehende Mails werden nicht über den Standard Port 25 gesendet, hinter dem sowieso ein Spamschutz lauert, der keine Authentifizierung unterstützt, sondern über den Port 587, welcher natürlich eine Verschlüsselung (hier STARTTLS statt SSL) und Authentifizierung erzwingt.

Für den Zugriff auf das Postfach dienst dann IMAP4 über den Port 993, welcher gleich mit SSL startet und nach einer Anmeldung den Zugriff erlaubt.

Wenn Sie Verbindung selbst per SSL oder STARTTLS gesichert ist, dann ist es nicht mehr so wichtig, ob das Kennwort selbst auch noch mal verschlüsselt wird.

Weitere Informationen zur automatischen Konfiguration finden Sie auch auf folgenden Links:

Thunderbird und EWS mit ExQuilla

Normalerweise nutzt Thunderbird immer nur IMAP4 oder POP3. Nun gibt es aber natürlich gegen diese Protokolle diverse Vorbehalte, z.B.:

  • Firewall Traversal
    Normalerweise können Clients per POP3/IMAP4 unverschlüsselt als auch verschlüsselt durch alle Firewalls kommunizieren. Allerdings müssen diese Protokolle natürlich "erlaubt" sein und immer mehr Firmen blocken diese Dienste
  • POP3/IMAP4 aktivieren
    Wenn Sie selbst einen Exchange Server betreiben und Thunderbird als Client erlauben wollen, dann müssten sie POP3 und/oder IMAP4 erlauben. Das würde aber auch wieder die Türen für andere eventuell unerwünschte Clients öffnen.
  • POP3 saugen
    Gerade das POP3-Protokoll ist eine latente Gefahr, da damit nur der Posteingang gelesen werden kann und viele Clients per Default die Mails "abholen" und diese dann nur noch lokal auf dem Client vorliegen. Das ist nicht im Sinne einer Exchange Umgebung.

Eigentlich sind die Exchange Web Services der ideale Weg neben ActiveSync und Outlook Anywhere (RPC/HTTP) mit dem Postfach sich zu verbinden. Mit dem AddIn "ExQuilla" ist es möglich, dass Thunderbird direkt mit dem Exchange Server über EWS kommuniziert. Leider kann ich das selbst nicht weiter testen

Thunderbird Debugging

Weniger bekannt ist, dass Thunderbird unter Windows auch ein relative ausführliches Debug-File schreiben kann. Die Aktivierung erfolgt aber etwas ungewöhnlich, indem Sie eine CMD-Shell starten und dort erst einmal zwei Umgebungsvariablen setzen.

set MOZ_LOG=POP3:4,IMAP:4,SMTP:4
MOZ_LOG_FILE=c:\tem\moztrace.txt
start thunderbird

Dann starten Sie Thunderbird aus dieser Shell, damit die Variablen übernommen werden. Hier mal ein Beispiel, wie ich eine fehlerhafte Anmeldung an einem Exchange Server diagnostiziert habe. Thunderbird hat den Servernamen mit einen @servername an den Usernamen addiert.

[(null) 7716: Main Thread]: I/SMTP SMTP Send: AUTH LOGIN
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 0
[(null) 7716: Main Thread]: I/SMTP SMTP Response: 334 VXNlcm5hbWU6
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 13
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 16
[(null) 7716: Main Thread]: D/SMTP SMTP AuthLoginStep1() for DOMAIN\USER@exch16.msxfaq.de
[(null) 7716: Main Thread]: D/SMTP LOGIN auth
[(null) 7716: Main Thread]: I/SMTP Logging suppressed for this command (it probably contained authentication information)
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 0
[(null) 7716: Main Thread]: I/SMTP SMTP Response: 334 UGFzc3dvcmQ6
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 18
[(null) 7716: Main Thread]: D/SMTP SMTP Login response, code 334
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 17
[(null) 7716: Main Thread]: D/SMTP SMTP AuthLoginStep2
[(null) 7716: Main Thread]: D/SMTP LOGIN auth, step 2
[(null) 7716: Main Thread]: I/SMTP Logging suppressed for this command (it probably contained authentication information)
[(null) 7716: Main Thread]: I/SMTP SMTP entering state: 0
[(null) 7716: Main Thread]: I/SMTP SMTP Response: 535 5.7.3 Authentication unsuccessful

Der Vorteil hierbei ist, das Sie auch die Befehle einer mit STARTTLS gesicherten Verbindung sehen können

Weitere Links