
Dies ist ein Befehlszeilentool, das E-Mails über SMTP senden kann. Es ist nicht nur einfach zu bedienen, sondern bietet auch gleichzeitig eine Vielzahl von Optionen, wenn nötig.
Letztes Jahr haben wir einen Blog-Artikel veröffentlicht, der zeigt, wie man das allgegenwärtige und sehr nützliche Telnet-Tool verwendet, um eine SMTP-Verbindung zu überprüfen.
Der nächste Schritt ist, den manuellen Prozess zu vereinfachen, indem man ein großartiges „Next Level“-Tool verwendet (es bezeichnet sich selbst als das Schweizer Taschenmesser der E-Mail) namens SWAKS. Dies ist ein Kommandozeilen-Tool, das E-Mails über SMTP senden kann. Es ist nicht nur einfach zu bedienen, sondern bietet auch gleichzeitig eine Vielzahl von Optionen, wenn sie benötigt werden.
Zuerst war ich von der Menge an Optionen eingeschüchtert, aber es ist perfekt mit den grundlegendsten Optionen nutzbar. Wenn Sie irgendwelche Probleme haben, speichern Sie einfach diese Seite als Lesezeichen, kopieren und fügen Sie die Beispiele ein und passen Sie sie nach Belieben an. Am Ende dieses Blogs, nachdem Sie etwas Vertrautheit erlangt haben und nicht viel Variabilität/Dynamik in Ihren SWAKS-Befehlen haben, werde ich Ihnen zeigen, wie Sie eine Konfigurationsdatei erstellen, die alle Ihre Standardparameter voreinstellt. Dies macht das Ausführen von SWAKS buchstäblich nur einen Tastendruck (OK, „Taste“) entfernt!
Für den Zweck dieser Übung werden wir die Befehle von einem CentOS 7-Server ausführen, aber die Befehle sind auf allen unterstützten Plattformen ähnlich. Wie oben erwähnt, wenn Sie feststecken, kopieren Sie einfach direkt in Ihr System und ändern, was Sie benötigen. Hier sind die Grundlagen:
Installieren
sudo yum install epel-release -y && sudo yum install swaks -y
Sobald installiert, hier ist die grundlegende Syntax, um eine Nachricht zu senden. In diesem Beispiel verwenden wir die lokale Adresse des Servers:
swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com
Senden Sie eine Nachricht mit einem "Subject"-Zeilen-Header + anderen Headern und fügen dann einen "Hello World!"-Text in den Body ein:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --header "Subject: Hello! This is the subject header\Second_header:123\nThird_Header:XYZ" --body “Hello World!”
Hier ist, wie man einen Anhang hinzufügt, bei dem SWAKS die Base64-Konvertierung für Sie durchführt, ideal zum Testen von Größenbeschränkungen für Nachrichten:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz
Sie sind mit den Grundlagen fast durch! Nun sehen wir uns an, wie Sie Ihr Setup weiter verbessern können. Hier sind einige Ideen:
Verwenden Sie einen Scheduler wie chron, um grundlegende ‚funktioniert es‘-Tests durchzuführen, die als Grundlage oder sogar zur Ergänzung Ihres Überwachungssystems dienen können.
Messen Sie die Latenzzeit beim Verbinden und Schließen einer Verbindung zu einem Mailserver.
Testen Sie verschiedene TLS-Versionen und Chiffren
Sie werden hier nicht allein gelassen, ich zeige Ihnen, wie Sie all das oben Genannte machen. Diesmal werden wir in unsere SparkPost-Server injizieren.
Senden Sie eine Nachricht an unsere SparkPost-Server (Wie man den API-Schlüssel hier erstellt, und die SMTP Optionen). Sobald Sie Ihren Authentifizierungsschlüssel haben, fügen Sie ihn in den Befehl ein (stellen Sie sicher, dass Sie den Schlüssel sicher und geschützt aufbewahren!):
swaks -server smtp.sparkpostmail.com:587 -tls --auth-user SMTP_Injection --auth-password [your auth key] -f me@from.com -t them@recipient.com
Wenn Sie nach Anleitungen suchen, wie Sie das Senden über SMTP an unsere Server beheben können, schauen Sie sich diesen Artikel an. Für grundlegende SMTP-Verbindungstests können Sie auch SMTP-Verbindungen mithilfe manueller Telnet-Sitzungen überprüfen.
Entsprechend den besten Sicherheitspraktiken hat SparkPost alle älteren TLS-Versionen außer v1.2 und höher eingestellt. Wenn Sie sehen möchten, ob Ihr System kompatibel ist, erlaubt Ihnen SWAKS, spezifische TLS-Versionen und Chiffren zu testen.
swaks -s smtp.sparkpostmail.com -tls -p 587 -f me@from.com -t them@recipient.com -tlsp tlsv1_2 --tls-cipher ECDHE-RSA-AES128-GCM-SHA256
In diesem Beispiel verwenden wir “tlsv1_2”, aber gehen Sie weiter und ändern Sie es in “tlsv1_1” und verwenden Sie es auf anderen Domains, um deren Kompatibilität zu beobachten.
Was, wenn Sie zeitschätzen möchten, wie schnell ein Mailserver reagiert? SWAKS kann den SMTP-Zyklus durchlaufen und an einigen Punkten aussteigen, ohne eine Nachricht zu senden, und Sie können sie mit dem „time“-Befehl zeitlich festlegen, der am Ende der Ausgabe angezeigt wird:
$ time swaks -s 127.0.0.1 -f sender@from.com -t them@recipient.com test--quit-after RCPT === Trying 127.0.0.1:25... === Connected to 127.0.0.1. … -> RCPT TO:<them@recipient.com> <- 250 2.1.5 <them@recipient.com> ok -> QUIT <- 221 2.0.0 v1pmta5.jasdevism.com says goodbye === Connection closed with remote host. real 0m0.049s user 0m0.038s sys 0m0.009s
Wie versprochen, wenn Sie es so weit geschafft haben, ist Ihre Belohnung diese einfache Nutzung einer Konfigurationsdatei, um Standardparameter festzulegen:
$ Cd $HOME $ vim .swaksrc # Kopieren und fügen Sie dies in die Datei in die .swaksrc-Datei ein --from swakstest@jasdevism.com h-From: "Jas Swaks" <swakstest@jasdevism.com> -s 127.0.0.1 --body "This is a test!" --to jsingh@sparkpost.com
Sobald Sie es gespeichert haben, geben Sie einfach „swaks“ ein, und es wird alles vorausgefüllt und auf den Weg geschickt! Noch besser, Sie können es überschreiben, indem Sie es in die Befehlszeile eingeben, sagen wir, wenn Sie einen anderen Empfänger wünschen:
swaks -t recipient@somewherelse.com