SMTP-Server einrichten

Im Blogbeitrag Beste kostenlose SMTP-Serverwir haben die Cloud-basierten Lösungen für das Senden von E-Mails angesprochen. Diese sind für alle Projektgrößen durchaus üblich. Was aber, wenn Sie die E-Mail-Relay-Dienste von Google Mail SMTP oder seinen Alternativen nicht verwenden möchten? In diesem Artikel erfahren Sie, wie Sie einen lokalen SMTP-Server einrichten und Abhängigkeiten beim Senden von E-Mails beseitigen.

Benötigen Sie wirklich einen SMTP-Server?

Die Verwendung eines ausgehenden SMTP-Servers ist die traditionelle Methode zum Senden von E-Mails. Eine alternative Lösung besteht darin, den SMTP-Server zu umgehen und direkt an das Ziel zu senden. Es ist als direktes Senden bekannt und Sie können es über bestimmte E-Mail-Softwareprogramme verwenden. Direct Send ist jedoch nicht sehr zuverlässig, und hier ist der Grund:

  • Es kann nicht verwendet werden, wenn Port 25 von Ihrem ISP blockiert wird.
  • Es eignet sich nicht für Massen-E-Mails, da mehrere Verbindungen zu vielen verschiedenen Servern bestehen.
  • Es können keine nicht personalisierten E-Mails gesendet werden.
  • Es kann durch E-Mail-Filter blockiert werden, da E-Mails nicht von einem normalen SMTP-Server gesendet werden.

Lassen Sie uns direkt wegschicken. Was Sie vielleicht interessiert, ist, warum Sie Ihren eigenen SMTP-Server betreiben würden.

Vor- und Nachteile eines lokalen SMTP-Servers

Vorteile Nachteile
  • keine tägliche oder stündliche Begrenzung der Anzahl ausgehender E-Mails
  • sofortiges Reporting
  • Datenschutz und Kontrolle über alle ausgehenden E-Mails
  • keine gemeinsame IP
  • das Ausführen eines lokalen SMTP-Servers erfordert Zeit und Mühe
  • Die Absprungrate kann um 20-30%
  • Einige Cloud-basierte Lösungen wie Mailgun und SendPulse bieten alle oben genannten Vorteile. Alle diese Funktionen werden jedoch bezahlt, und Sie müssen sich immer noch auf einen Dienst eines Drittanbieters verlassen. Stattdessen können Sie mit einer bestimmten Software einen SMTP-Server auf Ihrem Computer einrichten.

    Anforderungen an einen lokalen SMTP-Server

    Bisher gibt es keine spezifischen Anforderungen. Trotzdem sollten Sie auf Folgendes vorbereitet sein:

    • Einige ISPs blockieren möglicherweise den Port 25. Sie können dies beheben, indem Sie sich an Ihren ISP-Anbieter wenden und sich über die Einschränkungen informieren, die dieser möglicherweise auferlegt. Außerdem müssen Sie einen korrekten DNS-Server und die Berechtigung zur Auflösung von MX-Datensätzen anfordern.
    • Für Massen–E-Mails sollten Sie sich wahrscheinlich für eine Domain und eine damit verbundene feste IP-Adresse entscheiden – dies erhöht Ihre Widerstandsfähigkeit gegen Spam-Filter.

    Schnelles SMTP-Server-Setup

    Jetzt machen wir den Job. Da Sie einen SMTP-Server auf Ihrem Computer einrichten, ist es wichtig zu wissen, welches Betriebssystem verwendet wird. Aus diesem Grund werden wir drei Möglichkeiten für macOS, Windows und Linux überprüfen.

    Wichtiger Hinweis: Wenn Sie Test-E-Mails an die echte E-Mail-Adresse senden, finden Sie diese möglicherweise nicht im Posteingang. Vergessen Sie nicht, den Spam-Ordner zu überprüfen. ESPs wie Google Mail, Yahoo und andere sind misstrauisch gegenüber neuen Mail-Transfer-Agenten.

    Für macOS

    Die neuesten Versionen von macOS X sind mit Postfix vorinstalliert – einem Standard–E-Mail-Server. Sie müssen also nur die SMTP-Serverkonfiguration wie folgt optimieren:

    Postfix-Konfigurationsdatei

    • Die Postfix-Hauptkonfigurationsdatei ist die erste, mit der gearbeitet wird. Laufen:
    sudo vim /etc/postfix/main.cf
    • Teilen Sie Postfix mit, welchen Namen es verwenden soll, um sich bei anderen Mailservern zu identifizieren. Fügen Sie die folgenden Zeilen hinzu:
    myhostname = john.example.commyorigin = example.com

    Wenn Ihr lokaler Benutzername John ist, scheint die E-Mail von zu stammen [email protected].

    • Der Relay-Host ist der Computer, der E-Mails nach der Authentifizierung akzeptiert und an den SMTP-Server weiterleitet.
    relayhost=mail.example.com:25
    • Sie müssen SASL mit einer zusätzlichen Konfigurationsdatei aktivieren, in der das Kennwort gespeichert ist.
    smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
    • Diese Zeile bedeutet, dass Postfix nur TLS-verschlüsselte Verbindungen verwendet.
    smtp_tls_security_level = encrypt
    • So sieht main.cf vollständig aus:
    myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
    • Speichern Sie die Datei mit:
    sudo postmap /etc/postfix/main.cf

    Datei mit SASL-Passwort

    • Erstellen Sie die sasl_passwd -Datei:
    sudo vim /etc/postfix/sasl_passwd
    • Fügen Sie die folgende Zeile hinzu:
    mail.example.com:25 [email protected]:
    • Speichern Sie die Datei mit:
    sudo postmap /etc/postfix/sasl_passwd
    • Und Postfix neu starten:
    sudo postfix reload

    Der lokale SMTP-Server ist bereit. Probieren Sie es aus, indem Sie eine Test-E-Mail senden:

    date | mail -s "Test email" [email protected]

    Hinweis: Dieser Setup-Ablauf eignet sich für Nicht-macOS-Computer, die über einen regulären Postfix-Daemon verfügen.

    Für Linux

    Die meisten Linux-Distributionen werden mit den beiden gängigsten SMTP-Implementierungen ausgeliefert: Sendmail und Postfix. Sendmail hat ein ziemlich komplexes Design und ist weniger sicher; Deshalb haben wir uns wieder für Postfix entschieden.

    Installation

    Wenn Sie Postfix nicht auf Ihrem Computer haben, installieren Sie es zuerst. Außerdem benötigen Sie das Mailpaket Mailutils, das Programme enthält, die für die Funktion von Postfix erforderlich sind:

    sudo apt install mailutils postfix

    Im Postfix-Konfigurationsfenster müssen Sie die Internet-Site-Mail-Konfiguration auswählen. Schließlich müssen Sie den System-Mail-Namen angeben. Er sollte mit dem Namen übereinstimmen, den Sie dem Domainnamen zugewiesen haben, der auf Ihren Server verweist. Lassen Sie uns verwenden example.com.

    Konfiguration

    Nun konfigurieren wir Postfix, um Anforderungen zum Senden von E-Mails von localhost zu verarbeiten. Dazu müssen Sie die Hauptkonfigurationsdatei optimieren main.cf:

    sudo nano /etc/postfix/main.cf

    Scrollen Sie nach unten zur Zeile inet_interfaces = all und ersetzen Sie sie durch inet_interfaces = loopback-only

    Außerdem müssen Sie mydestinationändern, das die Liste der Domänen angibt. Es sollte so aussehen:

    mydestination = $myhostname, localhost.$example.com, $example.com

    Speichern Sie die Datei und starten Sie Postfix neu mit:

    sudo systemctl restart postfix

    Versuchen Sie am Ende, eine Test-E-Mail zu senden:

    echo "Test email body" | mail -s "Test email subject line" receipient's_email_address

    Für Windows

    Es gibt verschiedene Softwareoptionen zum Einrichten eines SMTP-Servers unter Windows, einschließlich MailEnable und Apache James. Aber wir haben uns für den beliebtesten entschieden, genannt hMailServer.

    Installation

    Laden Sie hier die neueste Version herunter und installieren Sie sie. Zu Beginn der Installation müssen Sie Folgendes beachten:

    • Stellen Sie im Fenster Komponenten auswählen sicher, dass die Option Vollständige Installation ausgewählt ist. Server- und Verwaltungskomponenten müssen überprüft werden.
    • Überprüfen Sie im Fenster Datenbankservertyp auswählen das integrierte Datenbankmodul.
    • Erstellen Sie im Fenster hMailServer Security ein Kennwort für den Standardbenutzer.

    Führen Sie nach der Installation hMailServer aus und konfigurieren Sie es nun.

    Konfiguration

    • Klicken Sie im Startfenster auf Verbinden und geben Sie das Passwort ein, das Sie während der Installation eingerichtet haben.
    • Klicken Sie auf Domain hinzufügen und geben Sie Ihren Domainnamen in das entsprechende Feld ein. Übrigens können Sie einen gefälschten Domainnamen verwenden, da der echte keine E-Mails senden muss. Stellen Sie in diesem Fall jedoch sicher, dass die gefälschte Domain tatsächlich nicht existiert. Klicken Sie auf Speichern, und Ihre Domain wird auf der linken Registerkarte erstellt.
    • Wählen Sie den Ordner Accounts auf der linken Registerkarte aus und klicken Sie auf Hinzufügen…, um einen zu konfigurieren. Alles, was Sie hier tun müssen, ist einen Namen in das Adressfeld einzugeben. Dadurch wird Ihre E-Mail-Adresse eingerichtet. Optional können Sie ein Passwort angeben. Klicken Sie auf Speichern und gehen Sie zu den Einstellungen auf der linken Registerkarte.
    • Erweitern Sie den Thread Einstellungen und wählen Sie Protokolle. Deaktivieren Sie POP3 und IMAP. Weitere Informationen zu diesen Protokollen finden Sie in unserem Blogbeitrag IMAP vs. POP3 vs. SMTP. Klicken Sie auf Speichern.
    • Wählen Sie nun im Einstellungsthread Erweitert und geben Sie localhost in das Feld Standarddomäne auf der rechten Registerkarte ein. Klicken Sie auf Speichern. Um die erweiterten Einstellungen zu erhalten, wählen Sie Auto-Ban und deaktivieren Sie das Kontrollkästchen Aktiviert. Klicken Sie auf Speichern.
    • Erweitern Sie am Ende den Dienstprogramme-Thread und wählen Sie Diagnose. Wählen Sie Ihre Domäne aus, auf der Tests ausgeführt werden sollen, und klicken Sie auf Start. Wir sind nicht an allen Tests interessiert, sondern sammeln nur Serverdetails und testen den ausgehenden Port. Diese sollten grün markiert sein.

    Das war’s. Jetzt können Sie Ihre Test-E-Mail senden. Dies kann mit PowerShell erfolgen – es ist schnell und einfach. Weitere Informationen dazu finden Sie in unserem Blogbeitrag E-Mails von PowerShell senden. Führen Sie die folgende Zeile aus (vergessen Sie nicht, Ihre Daten einzugeben):

    Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25

    Im Popup-Fenster müssen Sie Ihr Passwort eingeben.

    Eignet sich ein SMTP-Server zum Testen?

    In den meisten Fällen richten Benutzer lokale SMTP-Server zu Testzwecken ein. Wenn Sie eine App entwickeln, die E-Mails sendet, müssen Sie diese Funktion testen, und ein echter SMTP-Server, der auf Ihrem lokalen Computer ausgeführt wird, scheint eine gute Option zu sein. Aber, ist es? Einerseits ist es nicht schwierig, einen lokalen SMTP-Server zu installieren und zu konfigurieren. Es gibt jedoch eine viel bessere Lösung.

    Wenn Sie Mailtrap zum Testen verwenden, erhalten Sie ein erweitertes Tool, das auf einem gefälschten SMTP-Server basiert. Dies bedeutet, dass Ihre App E-Mails sendet, diese jedoch nicht zustellt. Ihre ausgehenden E-Mails landen im Mailtrap Demo-Posteingang. Sie müssen sich also nicht jedes Mal, wenn Sie Tests durchführen, um echte E-Mail-Empfänger kümmern und den Spam-Ordner überprüfen. Es ist überhaupt keine Installation erforderlich. Sie müssen lediglich Ihre SMTP-Einstellungen mit Mailtrap-Anmeldeinformationen aktualisieren. Alternativ können Sie ein gebrauchsfertiges Code-Snippet kopieren und einfügen. Es stehen verschiedene Integrationen für die gängigsten Frameworks und Programmiersprachen zur Verfügung. Weitere Informationen zu weiteren Vorteilen und Funktionen finden Sie im Mailtrap Getting Started Guide.

    Zum Abschluss

    Das Ausführen eines lokalen Mailservers kann manchmal schmerzhaft sein. Es ist viel Wissen und Aufwand erforderlich, um eine gute E-Mail-Zustellbarkeit mit Ihrem eigenen SMTP-Server zu erreichen. Vielleicht ist es eine gute Option für Testzwecke, aber Mailtrap oder andere E-Mail-Testtools machen es besser. Benötigen Sie tatsächlich einen lokalen SMTP-Server? Du bist der einzige, der das beantworten kann. Toi toi toi!

    Leave a Reply

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.