hMailServer

Vielleicht fragen Sie sich, warum auf der MSXFAQ ausgerechnet ein kostenfreier Mailserver für Windows mit SQL-Datenbank und Active Directory-Anbindung beschrieben wird. Ich bin nicht "betriebsblind" um nur Exchange als allein seligmachend anzusehen. Es gibt durchaus Umgebungen, in denen Exchange nicht passt, oder einfach einen Partner braucht. hMailServer ist ein einfacher SMTP-Server, der mir aber z.B.: bei Small Business Servern mit meinen EventSinks weiter hilft.

Und er kann auch per VBScript erweitert werde und sogar Disclaimer, wenn auch sehr einfach, anhängen. Aber primär ist es ein nette und wem das noch nicht reicht, kann da mit auch POP3-Postfächer abholen und an Exchange weiterleiten.

hMailServer ist ein privates nicht kommerzielles Projekt und aktuell (Stand Feb 2024) findet keine Weiterentwicklung statt. Das bedeutet nicht, dass hMailServer damit unsicher oder unbrauchbar ist. Aber Bugs oder Sicherheitslücken werden nicht mehr gefixt.

The latest major version was released several years ago and since then only critical updates have been released. hMailServer relies on algorithms which are considered insecure by modern standards, such as SHA1. For that reason, it's recommended that you migrate to an alternative software or service.
https://www.hmailserver.com/state

Beim Windows Betriebssystem gibt es immer noch den SMTP-Dienst als "Optional Feature", der SMTP routen kann aber keine Postfächer bereitstellt. Ansonsten können Sie natürlich immer noch Postfix/SendMail auf Linux einsetzen

Download und Installation

Die aktuelle Version finden Sie jeweils auf "http://www.hMailServer.com/" zum Download ist nur ein paar Megabyte groß. Bei der einfachen Installation gibt es zwei wichtige Punkte:

  • Auswahl der Datenbank
    hMailServer legt alle Mails in einer SQL-Datenbank ab. Das kann mySQL aber für sehr kleine Installationen die mitgelieferte SQLCompactEdition sein. Wenn man hMailServer nur als Relay verwenden möchte, reicht die MSSQL-Datenbank vollkommen aus.
    HMailServer Datenbankauswahl
  • Admin Kennwort
    Die Anmeldung zur späteren Konfiguration ist durch ein Kennwort gesichert, welches bei der Installation abgefragt wird. D.h. man kann auch als lokaler Admin den hMailServer nur administriere, wenn man das Kennwort dazu weiß.
    Adminpassword

Am Ende der Installation können Sie sofort die Konfigurationsoberfläche starten. Die GUI erlaubt sogar die Verwaltung verschiedener hMailServer auf unterschiedlichen Systemen. Melden Sie sich an "Localhost" einfach mit dem Kennwort an.

Konfiguration als Relay für Exchange EventSinks

Die Konfiguration von hMailServer ist recht umfangreich, wenn man alle Funktionen nutzen möchte. Ich beschränke mich hier auf die Einrichtungen, um hMailServer ausgehend als Relay für Exchange 200/2003 zu konfigurieren. Auf SingleServerSink habe ich das Problem beschrieben, dass EventSinks mit VBScript nur beim "Arrival" der Mail per SMTP getriggert werden und auf einem einzelnen Exchange Server damit der Versand per DNS nicht möglich ist und ein Smarthost benötigt wird. Das kann hMailServer leisten.

Dazu soll hMailServer auf Port 27 lauschen, nur Mails von Exchange (localhost) annehmen und dann per DNS ins Internet versenden. Dazu sind einige Schritte nötig:

  • Abschalten nicht benötigter Protokolle
    Da hMailServer keine eigenen Postfächer haben soll und POP3 und IMAP4 nur einen Konflikt mit Exchange erzeugen können, schalte ich diese Protokolle erst einmal ab
  • SMTP-Port- auf 27
    Damit sich auch die SMTP-Server nicht ins Gehege kommen, wird hMailServer umgestellt, um auf Port 27 zu lauschen

    Per Default lauscht hMailServer auf allen Ports. Wer explizit über 127.0.0.1 geht, kann auch hMailServer auf diese Adresse einschränken. Allerdings lassen sich dann nicht mehr so einfach Tests von Clients ausführen (Monitoring, Überwachung etc.)
  • Exchange als erlaubtes Relay eintragen
    Über die "IP-Range" wird vorgegeben, welcher Client wie behandelt wird. Hier ist "My Computer" anzupassen, dass unten rechts die SMTP-Authentication nicht mehr erforderlich ist.

    Da wird keine Domains für hMailServer pflegen, sind auch die Exchange Absender aus Sicht von hMailServer natürlich extern.

Da hMailServer per Default immer per DNS und MX zustellt, ist damit keine weitere Konfiguration zum Versand erforderlich. Alle Änderungen werden nach meiner Erfahrung sofort aktiv, aber betreffen nur neue SMTP-Verbindungen. Bestehende Verbindungen werden nicht einbezogen.

Nun können Sie in Exchange 2000/2003 den zweiten SMTP-Server mit dem EventSink auf "127.0.01:27" weiter leiten.

Signaturen und mehr

hMailServer kann natürlich mehr, als nur ein ausgehender Smarthost für Exchange zu sein. So kann man mit hMailServer auch einfache Signaturen an Mails anhängen. Allerdings ist nur "pro Domain" möglich und nicht nach Absendern, AD Gruppen oder Schlüsselworten in Betreff oder Body möglich:

Wer sich die anderen Menüs anschaut, wird auch bald erkennen, dass hMailServer auch eingehend als Spamschutz eine Option in einer DMT darstellen könnte oder ausgehend auch Mails mit DKIM signieren kann. Auch SMTP over TLS ist einen Funktion, die hMailServer unterstützt.

Ausgelagertes Journal

Es gibt aber noch einen zweiten Anwendungsbereich für hMailServer. Exchange unterstützt ein "Journal", bei der alle Mails einer Datenbank oder über das Transportjournal (Enterprise CAL) als Kopie an eine Journal-Adresse gesendet werden. Dieses Journalpostfach "kann" natürlich in einer Datenbank der gleichen Exchange Organisation liefen. Wer es aber mit der Journalfunktion ernst meint, muss diese Mails aus der Exchange Organisation herausholen. dazu gibt es zwei Wege:

  • Journalpostfach liegt in Exchange und wird "abgerufen"
    Damit erspart man sich einen weiteren Mailserver aber der Abruf muss natürlich klappen und idealerweise ist es eine eigene Datenbank. Das Transaktionsprotokoll-Volumen und die Datenbankgröße (Dumpster !) ist nicht zu unterschätzen, wenn viele Mails im Journal landen
  • Weiterleitung über Kontakt
    Daher wählen viele Firmen eher den Weg, dass die Journalmails das Exchange System möglichst schnell verlassen und auf einem anderen Server gespeichert werden.
    Technisch wird dabei ein Kontakt im Active Directory angelegt, der die Mails dann an eine andere Adresse weiterleitet

Für die Lösung mit dem Kontakt eignet sich jeder beliebiger Mailserver. Auch hMailServer zählt natürlich dazu. Sie können also den hMailServer auf einem anderen Windows Server, der sogar außerhalb des Exchange Forest stehen kann, installieren und ein Postfach mit einer Domäne (z.B.: "journal@hMailServer.firma.tld") einrichten. Über einen SMTP-Connector in Exchange wird dann jede Mail an die Domäne "hMailServer.firma.tld" einfach an die IP-Adresse dieses Servers gesendet. Dann brauchen Sie nur noch einen Kontakt im Active Directory, der auf die Adresse "journal@hMailServer.firma.tld" verweist und diesen bei der Datenbank oder einer Transportjournalregel einzutragen.

Natürlich ist es keine Lösung, in so einem Postfach dann alle Mails vorzuhalten. Das ist zwar möglich aber dann sollten Sie zuschauen, welche Software diese Mails "auslesen" und indexiert ablegen kann. Vielleicht passt ja etwas wie "Mailstore Home" (http://www.mailstore.com/de/mailstore-home.aspx) oder andere Lösungen zur langfristigen Ablage von Mails.

Weitere Links