Windows: Regel- und routen-basierter SMTP-Versand mit hMailServer

Mit dem kostenfreien hMailServer für Windows ist es möglich, mittels Regeln und Routen für jede E-Mail-Domänen und sogar für jeden Benutzer einen individuellen SMTP-Versand einzurichten.

Notwendig kann ein solches Verfahren sein, wenn man für jede E-Mail-Domäne einen anderen Anbieter verwendet, denn nicht jeder Anbieter akzeptiert E-Mails anderer Domänen, wenn die Anmeldedaten (SMTP Auth/SMTP Relay) für eine bestimmte Domäne verwendet werden.

Beispiel des Problems:

Domäne A -> Anmeldedaten A -> Anbieter A -> Akzeptiert
Domäne B -> Anmeldedaten A -> Anbieter A -> Nicht akzeptiert

Ferner kann es notwendig sein, das jeder E-Mail-Versender mit seinen eigenen Anmeldedaten authentifiziert werden muss, wenn der Anbieter automatisch die Versand-Adresse in einer E-Mail auf die des angemeldeten Benutzers festlegt.

Beispiel des Problems:

Versender A -> Anmeldedaten A -> Versand-Adresse A
Versender B -> Anmeldedaten A -> Versand-Adresse A

Ganz gleich, mit welcher Absender-Adresse beim Anwender die E-Mail versendet wird, der Anbieter ersetzt Diese durch die den Anmeldedaten entsprechenden Adresse.

Routen einrichten

Zunächst müssen die SMTP Routen eingerichtet werden, auf Diese wird dann in den Regeln referenziert.

  • Den „hMailServer Administrator“ starten und anmelden.
  • Zu „Settings – Protocols – SMTP – Routes“ wechseln.
  • Auf die Schaltfläche „Add…“ klicken.
  • Auf der Registerkarte General folgende Einstellungen vornehmen:
Unter "Domain" die E-Mail-Domäne eintragen.
Unter "Target SMTP Host" den Ziel-SMTP-Server eintragen.
Unter "Port" den Port (Standard 25) des Ziel-SMTP-Servers eintragen.
  • Auf der Registerkarte „Delivery“ folgende Einstellungen vornehmen:
"Server requires authentication" aktivieren.
"User name" und "Password" eintragen.

Regeln einrichten

Prinzipiell gibt es zwei Stellen, an denen man Regeln konfigurieren kann. Zum einen für alle Domänen, zum anderen pro Benutzer. Der Regelaufbau ist in beiden Fällen ähnlich.

  • Den „hMailServer Administrator“ starten und anmelden.
  • Entweder zu „Domains – DOMÄNENNAME – Accounts – KONTO“ oder zu „Domains – Rules“ wechseln.
  • Auf die Schaltfläche „Add…“ klicken.
  • Unter „Name“ eine Bezeichnung für die Regel angeben.
  • Im Abschnitt „Criteria“ auf die Schaltfläche „Add…“ klicken.
  • Unter „Search type“ „Contains“ auswählen.
  • Unter „Value“ die vollständige E-Mail-Adresse des Benutzers oder die Domäne angeben.
  • Im Abschnitt „Actions“ auf die Schaltfläche „Add…“ klicken.
  • „Send using route“ und die dazugehörige Route auswählen.

Bemerkung

Sinnvoll sind solche Konstrukte allerdings nur für Domänen oder eine Handvoll Benutzer. In größeren Umgebungen sollte auf eine entsprechende ein- und ausgehende SMTP-Anbindung gesetzt werden.

22 Kommentare

  • Hallo, verstehe ich es richtig?
    Ich habe mehrere Konten bei externen Providern (z.B name@web.de und name@yahoo.de)
    Kann ich dann mit diesen Routen bestimmen, das wenn ich eine Email nach extern versende und als Absendername z.b. name@web.de wähle das die Email auch mit den Zugangsdaten über den SMTP Relay von Web.de rausgeht?

  • Genau so ist es.

  • Klasse Erklärung zu den Regeln und Routen!
    Ich habe schon ein paar mal versucht t-online und web.de in den hmailserver einzubinden. Habe es aber noch nicht hinbekommen.
    Einen Eintrag im Blog mit einem Beispiel wäre echt Spitze. 😉
    Eventuell kann ich es danach abbilden.

  • Was hast du wo eingetragen bzw. gibt’s eine Fehlermeldung (ggf. aus den Logs)?

  • Ich muss die T-online Adresse ja als externen Account einem hmailserver account zuordnen. Domäne: klick.de, Account: tst1@klick.de. Der erste externe Account ist bei meinem ISP tst1@klick.de. Hier soll nun die t-online.de Addresse als 2. External account dazugehängt werden. Abholen per POP3 noch kein Problem. Mailclient ist Outlook 2010. Wie muss ich jetzt vorgehen damit die Absenderadresse korrekt gesetzt wird? Ich denke mit einer Regel für den Account sollte das umsetzen doch möglich sein. Brings aber nicht wirklich hin 🙁

  • > Ich muss die T-online Adresse ja als externen Account einem hmailserver account zuordnen.

    Das betrifft ja hauptsächlich den Empfang und hat mit dem Versand nicht zwingend etwas zu tun.

    > Domäne: klick.de, Account: tst1@klick.de. Der erste externe Account ist bei meinem ISP tst1@klick.de. Hier soll nun die t-online.de Addresse als 2. External account dazugehängt werden.

    Du möchtest von einem Konto aus zwei E-Mail-Adressen verwenden? Das wird wahrscheinlich nicht funktionieren, da das Regelwerk ja anhand der Absender-Adresse, die wiederum über das verwendete Konto im Mailclient gesetzt wird, entscheidet, über welche Route und damit über welchen Provider versendet wird.

    Was auf jeden Fall funktioniert und wir so auch im Einsatz haben (sowohl bei uns als auch bei Kunden) ist, das man eine weitere Domäne im hMailServer angelegt, im Falle von T-Online muss aber eine andere TLD (.de, …) verwenden, da man sonst nicht an weitere T-online-Empfänger Nachrichten versenden kann.

    Ein Beispiel:

    – Eine neue Domäne, z.B. „T-Online.local“, anlegen.
    – In dieser Domäne einen Account anlegen.
    – Bei SMTP eine neue Route anlegen und dort den SMTP-Server von T-Online konfigurieren (Host, Benutzername, Kennwort, SSL). Achtung: T-Online erwartet, das die Anmeldedaten mit der Absender-E-Mail-Adresse übereinstimmt, andernfalls wird entweder die Mail nicht angenommen oder die Absender-Adresse mit der Adresse die bei den Anmeldedaten beim Provider hinterlegt ist überschrieben!
    – Eine Regel anlegen, die angibt, sobald die Absender-Adresse von „T-Online“ enthält, die entsprechende Route verwendet wird.
    – Im Mailclient ein weiteres Konto anlegen mit den Anmeldedaten des hMailServer, als E-Mail-Adresse die T-Online-Adresse mit „.de“ (Außer beim Benutzername, dort „.local“ verwenden) eingeben.

  • Hallo Andy,
    Suppi, so funktioniert es.
    Vielen Dank für die Hilfe.

  • Gern geschehen und danke für’s Feedback!

  • Hallo,
    Entschuldigung das ich so ein altes Thema wieder ausgrabe, aber genau bei diesem Thema komme ich aktuell nicht weiter. Vielleicht kannst du mir helfen.

    Aktuell haben wir noch AVM!KEN eingesetzt und möchte jetzt auf hMailServer umstellen, leider habe ich da ein Problem mit dem Konfigurieren des SMTP-Relays.

    Bei KEN konnte man für jede Adresse einen eigenen SMTP Relayer konfigurieren, hier muss ich anscheinend SMTP-> Routen anlegen und diese per Domain->Regel verknüpfen. Leider komme ich hier nicht wirklich weiter.
    Der Punkt „Domain“ bei SMTP-> Routen bestimmt, nach meinem Verständis, die Domain für die Route angewendet werden soll und auch gleichzeitig die Bezeichnung der Route. In meinem Fall soll es ja für alle Domainen gelten.

    Vielleicht hast du einen heißen Tipp für mich 🙂

  • Für jeden Absender eine SMTP-Route anlegen, bei Domain z.B. die Absender-Adresse (z.B. name@domain.tld) eingeben, diese dient in einem solchen Szenario nur als Namensfeld, den SMTP-Server eintragen. Unter „Delivery“ dann die Anmeldedaten für diese E-Mail-Absenderadresse eintragen.

    Dann eine Regel erstellen die auf die Absender-Adresse (From) passt und als Action „Send using route“ mit der zuvor erstellen SMTP-Route ausführt.

    Aus Erfahrung kann ich sagen, das es so funktioniert.

  • Vielen Dank. Ich versuche es morgen direkt :)))).

  • Hallo,
    habe es genau nach Anleitung gemacht leider bekomme ich immer folgende E-Mail zurück (je nachdem an welchen Provider ich schicke natürlich unterschiedlich, aber immer blacklisted):

    Error Type: SMTP
    Remote server (212.227.15.9) issued an error.
    hMailServer sent:
    Remote server replied: 554-gmx.net (mxgmx015) Nemesis ESMTP Service not available 554-No SMTP service 554-IP address is black listed.
    554

    In der Protokollierung von hMailServer sehe ich auch „Applying rule hMailserver SMTP Route“ und dann kommt direkt „performing local delivery“

    Wenn ich den SMTP Relayer Domänen/E-Mail übergreifend festlege funktioniert es (direkt unter Einstellungen->Protokolle->SMTP)

    Bin total verzweifelt, hast du noch einen Tipp?
    Kann dir auch gerne mal Screenshots schicken.

    Liebe Grüße
    Standar

  • Muss ich jetzt raten, ich tippe auf entweder greift die Regel nicht oder falsche/unvollständige Daten.
    In der SMTP-Route muss unter „General“ – „Domain“ (Quasi-namensfeld), „Target SMTP Host“, „TCP/IP port“ und ggf. „connection security“ und unter „Delivery“ zu Zugangsdaten für diesen Abender konfiguriert sein.

  • Auch mir ist einiges völlig unklar.
    Vorab möchte ich meine „Emailumfeld“ beschreiben.
    Ich habe bei einigen Email-Providern eine bis mehrere Emailadressen.
    Ich habe gleichlautende Emailadressen z.B. xyz@gmx.de und xyz@gmx.at und xyz@gmx.ch.
    Ich habe im Heimnetz 5 PC. Nur die greifen auf den PC mit hmailserver zu.

    Es geht um hmailserver 5.6.6 bzw. die Beta 5.6.7
    Domains: Unterliegt der Name irgendeiner Konvention? Wird er im Mailprogramm als Servername und nur als Servername benutzt und wenn ja, für alle Protokolle (IMAP, POP und auch für SMTP??)?
    – Account: Die hier erzeugte Emailadresse ist ausschließlich wichtig für das interne Mailprogramm und ist in einer Mail, die nach außen geht niemals erkennbar, oder?
    – Externe Accounts: Ist bei EINEM externen Account plausibel. Wenn ich hier nun mehrere GMX-Adressen eintrage, landen dann alle Mails aus diesen Adressen in genau diesem einen Account des hmailservers. Kann ich diese Mails dann (per Regel?) wieder auf mehrere Postfächer im Emailprogramm verteilen?

    Settings – Protocols – SMTP und Routes:
    General:
    Domain: Was wird hier eingetragen? Immer eine externe Domain wie z.B. gmx.net? Phantasienamen? Wo wird dieser Eintrag ansonsten verwendet, im Emailprogramm als Teil des Benutzernamens?
    Absolut unklar ist mir die „Verdrahtung“ bei Wenn die Route auf den Sender/Empfänger passt -> lokale bzw. Remote-Emailadresse
    Addresses: Kommen hier z.B. alle externen gmx.de-Emailadressen rein, die ich habe?
    Delivery: Wenn ich z.B. die Emailadressen abc@gmx.de und def@gmx.de habe, kann ich eine von beiden verwenden?

    Regeln: Hier ist mir sehr viel unklar. Gelten die für Mails,
    1. die von extern ankommen,
    2. die nach intern gehen,
    3. die von intern ankommen,
    4. die nach extern gehen?

    Bei 1. und für den Fall, dass EIN Account genau EINE externe Emailadresse hat, braucht man doch keine Regel, oder?

  • Hi Andy,

    erstmal: Super Blog, hat mir schon gut weitergeholfen. Allerdings bekomme ich es absolut nicht hin, mithilfe der Rules und Routes abhängig von der Sender-Adresse eine Route festzulegen. So weit wie ich nun sehe:

    Die Route wird ausschließlich, aber immer nur für die Domain verwendet, die im Domain-Feld der Route steht, also: wenn in der Route -> Domain „Example.com“ steht, werden NUR die Mails an „example.com“ durch den SMTP relayer gesendet. Entsprechend: Wenn ich „*“ in die Route -> Domain schreibe, werden ALLE mails über den SMTP relayer gesendet, egal, ob ich in den Rules eingetragen hab, dass die Sender Adresse über diese Route senden soll.

    Was könnte ich falsch gemacht haben, und, welche Version hast du genommen? Evtl wurde da ja etwas gepatched.

    Vielen Dank im Voraus!

  • > Die Route wird ausschließlich, aber immer nur für die Domain verwendet, die im Domain-Feld der Route steht, also: wenn in der Route -> Domain „Example.com“ steht, werden NUR die Mails an „example.com“ durch den SMTP relayer gesendet.

    Das klingt erstmal danach, das es passt.

    > Entsprechend: Wenn ich „*“ in die Route -> Domain schreibe, werden ALLE mails über den SMTP relayer gesendet, egal, ob ich in den Rules eingetragen hab, dass die Sender Adresse über diese Route senden soll.

    Logisch, das wäre ja eine Default- oder wenn man so möchte Any-Rule, die muss man nicht extra anlegen.

    Im Grunde ist es so, das alles, was nicht durch eine Regel abgedeckt ist, durch die Angabe bei SMTP (ggf. Delivery of email) versendet wird.

    Wurden denn auch die (richtigen) Regeln erstellt, damit auf die SMTP-Rules überhaupt verwiesen wird?
    Erst durch die Regeln ist es möglich in Abhängigkeit von der Absender-Adresse auf eine entsprechende SMTP-Route zu verweisen.

    > Was könnte ich falsch gemacht haben, und, welche Version hast du genommen? Evtl wurde da ja etwas gepatched.

    Da hat sich seit gefühlt hundert Jahren meines Wissens nach nichts geändert. Bei mir läuft es wie beschrieben seit Jahren.

  • Vielen Dank schonmal für die schnelle Antwort!

    Aus meiner Sicht habe ich schon die richtigen Regeln erstellt:

    1. Route mit beliebiger Domain (meinedomain.de) und SMTP-Konto von T-Online
    2. Regel „From“ -> „contains“ -> Sender-Emailadresse -> Send using Route -> meinedomain.de (die Route, die ich ja so genannt habe)

    Das Problem ist nun, dass eben die Route nicht benutzt wird, sondern der Standart-SMTP. Lediglich wenn ich in der Route die Domain „*“ oder eben example.com eintrage (statt meinedomain.de), wird an entweder alle Ziel-Adressen oder halt an die example.com-Adresse die Route verwendet, unabhängig davon, ob die erstellte Regel aktiv ist oder nicht.

    Sprich, so wie es sich bei mir darstellt: Die Regeln, die ich erstelle, haben 0 Einfluss auf die Routes, die Route wird unabhängig von allen Regeln nur benutzt, wenn die Ziel-Mail-Adresse dem Eintrag bei „Domain“ in der Route entspricht. (Oder wird eben immer benutzt bei „*“-Domain, auch wenn keine Regel aktiv ist)

    Ich kann mir echt nicht erklären, was bei mir anders eingestellt sein soll als bei dir. Bin ziemlich ratlos.

    Danke nochmal für deine Mühe!

  • Klingt danach, als ob mit den Regeln etwas nicht stimmt.
    Zur Sicherheit gefragt: Die Regeln stehen unter „Domains – Rules“?
    Mal über „Test – Valeu“-Feld in den Regeln geprüft, ob die Regel auf den Absender wirklich „matcht“?

    Der Standard-SMTP sollte nur verwendet werden, wenn keine Regel bzw. Route zutrifft.

  • Das „Value“-Feld sagt: match.

    Mit dem Rules-Ordner: Ich habe innerhalb des Ordners „Domains“ gar keinen „Rules“-Ordner, nur als zusätzlichen Punkt zwischen den Punkten „Domains“ und „Settings“, auf der selben Ebene (sprich golbal?!)

    Bei den einzelnen Usern gibt es ja auch noch den Reiter „Rules“, da gibt es die Option „Send using Route“ allerdings nicht.

  • Richtig, es gibt eigentlich nur einen für das Vorhaben brauchbaren Rules-Ordner. Die Rules ist auch aktiviert (sind sie eigentlich beim Anlegen per Default)?
    Ich frag‘ nur zur Sicherheit, nicht das es zu Missverständnissen kommt oder es an so etwas simplen hängt.

    Ungesehen weiß ich so spontan leider nicht weiter.

    Ggf. mal das Logging aktivieren und schauen was da drin steht.
    Möglicherweise klappt der Versand auf einem Weg nicht und dann wird ein Anderer genommen, ist aber jetzt reine Spekulation.

  • Hi andy,

    okay, ich habe das ganze jetzt zum 5. platt gemacht und neu eingerichtet (natürlich genauso wie vorher…), es funktioniert nun wundersamerweise.

    Vielen Dank für deine engagierte Hilfe, echt klasse! 🙂

  • Freut mich das es nun läuft. Irgendwie seltsam ist’s/War’s ja dann dennoch. Wer weiß was da im Hintergrund möglicherweise schief gelaufen ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.