Need help? Chat now!

Hostwinds Tutorials

Suchergebnisse für:


Inhaltsverzeichnis


Was ist smtp-cli?
Voraussetzungen
Konfiguration
Abhängigkeiten
CentOS / Fedora
Ubuntu / Debian
Laden Sie das SMTP-CLI-Repository herunter
Erstellen Sie eine E-Mail-Passwortdatei
Mail mit smtp-cli senden
Hier ist die Codevorlage für ein Bash-Skript
Und hier ist die E-Mail, die gesendet wurde
Einige andere nützliche smtp-cli-Argumente
Fehlerbehebung

Verwendung von smtp-cli zum Erstellen eines Simple Mail Sending Agent (Linux)

Stichworte: Email,  Linux 

Was ist smtp-cli?
Voraussetzungen
Konfiguration
Abhängigkeiten
CentOS / Fedora
Ubuntu / Debian
Laden Sie das SMTP-CLI-Repository herunter
Erstellen Sie eine E-Mail-Passwortdatei
Mail mit smtp-cli senden
Hier ist die Codevorlage für ein Bash-Skript
Und hier ist die E-Mail, die gesendet wurde
Einige andere nützliche smtp-cli-Argumente
Fehlerbehebung

Was ist smtp-cli?

Um besser zu verstehen, was SMTP-CLI ist, sprechen wir darüber, was es nicht ist;SMTP-CLI ist kein E-Mail-Server oder Relaisagent.Es ist auch kein Weg, um hohe E-Mail-Bände zu senden.Es ist ein E-Mail-Client, mit dem Text, HTML, Dateien und Bildern von der Befehlszeile und der Skripts gesendet werden können.

Anstatt einen anderen E-Mail-Server zu erstellen, können Sie SMTP-CLI verwenden, um Updates von Ihrem VPS (s) über ein Remote-E-Mail-Konto zu senden, um die Gesundheit oder den Status zu überwachen. Sie können auch einen CRON-Job einrichten, um Protokolle als Teil der Serversicherheitshärtung weiterzuleiten. Dadurch kann Ihr Server mehr oder weniger unbeaufsichtigt laufen, es sei denn, Fehler oder Grenzwerte werden angefahren.

Voraussetzungen

  • ein Remote-E-Mail-Server mit Ihrem E-Mail-Konto
  • Ein VPS, bei dem E-Mails ausgehend gesendet werden müssen
  • Befehlszeilenzugriff auf über VPS (über SSH oder Get VNC)

Konfiguration

  • 1 Hostwinds VPS with CentOS 7
  • ein cPanel-E-Mail-Konto
  • Der Putty SSH-Client wird für den Zugriff verwendet

Abhängigkeiten

Wir werden GIT verwenden, um das SMTP-CLI-Skript von GitHub zu ergreifen. Wenn Sie es noch nicht installiert haben, können Sie es so installieren:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Laden Sie das SMTP-CLI-Repository herunter

# git clone https://github.com/mludvig/smtp-cli.git

Das SMTP-CLI-Skript (der Teil der Läufe) befindet sich in einem Verzeichnis namens SMTP-CLI, und innen ist eine Datei namens SMTP-CLI (das -L-Flag im Befehl lässt uns die Dateiattribute ansehen, um sicherzustellen, dass er sicherstellen kann ausführbar).

# ls -l smtp-cli

Wenn diese "X" stattdessen "-" sind, führen Sie diesen Befehl aus, um die Datei ausführbar zu machen.

# chmod +x smtp-cli/smtp-cli

Jetzt können wir testen, ob es läuft.

# smtp-cli/smtp-cli

Was zu einem solchen Fehler führen sollte

Es ist seltsam, einen Fehler zu haben, aber da wir nur testen, ob das Skript heruntergeladen und ausführbar ist, ist das alles, was wir jetzt brauchen.

Jetzt werden wir unseren globalen Pfad überprüfen (wo der VPS prüft, wenn ich Dinge über die Befehlszeile ohne vollständigen Pfad ausführe).

# echo $PATH

Und kopieren Sie die smtp-cli in das Benutzerverzeichnis sbin in Ihrem Standardpfad.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

Jetzt können wir SMTP-CLI aus einem beliebigen Verzeichnis auf dem VPS ausführen, ohne sich Sorgen zu sorgen, um den vollständigen Pfad in die Datei zu verwenden.

Erstellen Sie eine E-Mail-Passwortdatei

Da Ihr unverschlüsseltes Kennwort in einem Skript in einem Skript am meisten unsicher ist, ganz zu schweigen von schwierigen, Möglichkeit, ein Kennwort zu verwalten, erstellen wir eine Datei, die unsere Passwortinformationen enthält. Dadurch können wir unser Passwort leicht aktualisieren und einen schädlichen Schauspieler zumindest nach den Informationen suchen.

Da ich als Root-Benutzer läuft und einen Root Cronjob erstellt, liegt diese Datei im Verzeichnis / root / auf. Ihr CRON-Job kann sich je nach den Berechtigungen in Ihrem Benutzer Crontab befinden, abhängig von den Berechtigungen, die Sie von Ihrem Systemadministrator gewährt werden. In diesem Fall können Sie dies im / home / username speichern.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

Beachten Sie, dass das "Somerandomplassword" der Klartext Ihres aktuellen E-Mail-Kennworts für Ihr Remote-E-Mail-Konto sein muss.

Mail mit smtp-cli senden

Jetzt kommen wir zum guten Teil, indem wir eine E-Mail als Teil eines Skripts oder über die Befehlszeile senden. Ich werde es testen, indem ich die Datei sende, die wir als Teil unseres vnstat-Handbuchs erstellt haben.

Hinweis: Im folgenden Abschnitt $ (einige Befehle) kann ein Befehl inline ausgeführt werden und die Ausgabe dieses Befehls als Eingabe für das Argument verwenden.

# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png

Jetzt, da wir wissen, dass es funktioniert, können wir den Befehl in ein Bash-Skript oder einen Cron-Job einfügen.

Hier ist die Codevorlage für ein Bash-Skript

#!/etc/bash

smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log

Und hier ist die E-Mail, die gesendet wurde

Einige andere nützliche smtp-cli-Argumente

--help
--body-plain=<text|filename>
--body-html=<text|filename>

Während dieses Beispiel die Möglichkeit bot, Skripte oder Cronjobs einzurichten, kann dieser einfache Mailer auch E-Mails mit globalen Variablen senden oder für andere Überwachungsskripte ausgeben. Alle diese Tools können einfache Warnungen oder komplexe Diagnosedaten basierend auf einem regelmäßigen Intervall oder einem auslösenden Ereignis an Ihre E-Mail senden.

Fehlerbehebung

Bei Verwendung des Skripts können mehrere verschiedene Probleme auftreten. Das erste Problem würde, wie sich Ihr Mail-Server authentifiziert. Geben Sie eine vollständige E-Mail-Adresse oder nur einen Benutzernamen ein? Das brauchen Sie nach dem Argument-User-Argument. Das Beispiel setzt voraus, dass Sie die vollständige E-Mail-Adresse als -UER eingeben. Verwenden Sie, welche Anmeldeinformationen Sie normalerweise für Ihren Server verwenden.

Der zweite Problembereich ist das Feld –von. Stellen Sie sicher, dass dies das E-Mail-Konto ist, bei dem Sie sich anmelden. Sie können keine E-Mails von einem Konto senden, das Sie nicht kontrollieren.

Der dritte ist der Servername und die Port-Auswahl des Felds -Servers. Dieser Name sollte ein vollständig qualifizierter Domänenname Ihres ausgehenden E-Mail-Servers sein, gefolgt von A: Portnumber. Die Standardports für SMTP sind 25, 587, 465.

Schließlich muss das Feld mit dem Feld eine gültige E-Mail-Adresse sein, oder es wird niemals ein Ziel erreicht.

Geschrieben von Paul Schene  /  Juli 10, 2020