Der Autor hat dieses Tutorial freiwillig als Teil des Pepipost Write to Contribute-Programms beigesteuert.
Einführung
Benachrichtigungen werden heutzutage immer wichtiger, um bei verschiedenen Online-Aktivitäten auf dem Laufenden zu bleiben. Darüber hinaus können diese Benachrichtigungen E-Mails, SMS oder Push sein. Dieses Tutorial zeigt Ihnen die einfachste Möglichkeit, Benachrichtigungen über einen der beliebtesten Kanäle, E-Mail, zu senden. Sie werden den Prozess des Sendens von E-Mails vom Terminal oder ein Shell-Skript von einem Linux-Betriebssystem lernen, einige der beliebtesten CLI-Tools.
Dieses Tutorial hilft Ihnen beim Senden kritischer E-Mails auf Serverebene wie Cron-Berichte, Skriptprotokolle, Kundenregistrierungen, Quittungen und Kontoauszüge per E-Mail. Es gibt viele Möglichkeiten, E-Mails vom Server zu senden, aber lassen Sie uns das Tool erkunden, das einfach zu installieren und zu codieren ist.
Mit einfachen Bibliotheken und kleinen Konfigurationen können Sie ein CLI-Tool in Ihrem Linux-Betriebssystem haben, mit dem Sie E-Mails vom Terminal aus senden können.
Voraussetzungen
- Linux-Betriebssystem
- SMTP-Konfigurationen (SMTP-Serverdetails und Authentifizierungsdaten)
- Ihr bevorzugter Editor (Optional)
- Konfigurieren Sie Google Mail SMTP / ready mit anderen benutzerdefinierten SMTP-Serverdetails. In diesem Tutorial werden Sie Google Mail SMTP verwenden, um E-Mails zu senden, so stellen Sie sicher, dass;
undefinedundefined
Google SMTP-Serverkonfigurationen würden ungefähr so aussehen:
- SMTP-Server/Hostname: smtp.gmail.com
- SMTP-Benutzername:
- SMTP-Passwort:
- SMTP-Port: 587
- TLS / SSL: Erforderlich
Es ist an der Zeit, das Terminal zu öffnen
Es gibt verschiedene Tools und Bibliotheken, die Sie installieren können, um E-Mails vom Terminal aus zu senden. Einige der beliebtesten Bibliotheken sind:
- sSMTP
- Mailx
In diesem Tutorial erfahren Sie, wie Sie sSMTP installieren und verwenden, um E-Mails von Ihrer Linux-Befehlszeile aus zu senden. Klicken Sie hier, falls Sie erfahren möchten, wie Sie Mailx installieren und verwenden, um E-Mails von Ihrer Linux-Befehlszeile aus zu senden.
So installieren Sie sSMTP, um E-Mails von Ihrer Linux-Befehlszeile (CLI) zu senden
Schritt 1
Verwenden Sie den folgenden Befehl, um ssmtp zu installieren:
sudo apt-get install ssmtp
Optional:
CentOS-Benutzer können den folgenden Befehl verwenden, um ssmtp zu installieren:
sudo yum install ssmtp
In CentOS wird möglicherweise während der Installation ein Fehler angezeigt, da „package ssmtp is not available“ in einem solchen Fall unter dem folgenden Befehl hilfreich ist, um das Problem zu beheben:
sudo yum --enablerepo=extras install epel-release
Schritt 2
Sobald ssmtp erfolgreich installiert wurde, müssen Sie die folgenden globalen Konfigurationen vornehmen, die zum Senden von E-Mails erforderlich sind.
Öffnen Sie die folgende Datei in Ihrem bevorzugten Editor:
sudo vim /etc/ssmtp/ssmtp.conf
Bearbeiten Sie die obige Datei mit den folgenden Details:
mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
Die obige Konfiguration wird verwendet, um E-Mails mit Ihrem Google Mail-SMTP zu senden. Falls Sie ein anderes SMTP eines Drittanbieters verwenden möchten, geben Sie den Hostnamen desselben an. zB wenn Sie Pepipost SMTP verwenden möchten, dann anstelle von smtp.gmail.com , Sie müssen erwähnen smtp.pepipost.com im Mailhub-Parameter. mailhub wird für die SMTP-Serveradresse verwendet, die aus zwei Teilen besteht Host:Port
Jetzt können Sie E-Mails über die Befehlszeile (CLI) senden.
Schritt 3
Es gibt mehrere Möglichkeiten, den Befehl ssmtp zum Senden von E-Mails zu verwenden.
Fall 1: Senden Sie E-Mails direkt über die Befehlszeile
Kopieren Sie dazu den folgenden Befehl und fügen Sie ihn ein, und Sie können E-Mails über Ihre Befehlszeile senden:
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv
– vvv ist die Ausführlichkeit, um die Protokolle beim Senden der E-Mail anzuzeigen
Fall 2: Senden von E-Mails über ein Shell-Skript
Sie können dasselbe ssmtp verwenden, um E-Mails auch über ein Shell-Skript zu senden. Öffnen Sie dazu Ihren bevorzugten Editor und erstellen Sie eine Shell-Skriptdatei mit dem Namen saymail.shand copy-Paste den folgenden Code:
#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO
Stellen Sie sicher, dass Sie die richtigen Berechtigungen für den Zugriff auf Ihre Skriptdatei festgelegt haben. Wenn nicht, ist hier der Befehl zum Festlegen der Berechtigung:
$ sudo chmod 755 mail.sh
Nun kann der Code ausgeführt werden. Führen Sie einfach das Shell-Skript mit dem folgenden Befehl aus:
$ sudo ./mail.sh
Ich hoffe, Sie können jetzt auch E-Mails mit dem Shell-Skript senden.
Unten sind einige Fehler / Ausnahmen aufgeführt, die beim Senden der E-Mail mit ssmtp auftreten können:
Fehler 1
Falls Sie beim Senden der E-Mail den folgenden Fehler als Ausgabe erhalten:
ssmtp: Autorisierung fehlgeschlagen (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.artikel-Nr. 104 – gsmtp)
220 smtp.gmail.com ESMTP u65sm14952769pfu.104 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 EUEeGFzc3dvfcaqQ6 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtpssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtp):~/Documents/Scripts$
Lösung: Versuchen Sie in einem solchen Fall Folgendes als Lösung:
- Aktivieren Sie „Weniger sichere App zulassen“ in Ihren Google-Kontoeinstellungen, wie im obigen Abschnitt „Voraussetzungen“ erläutert.
- Die angegebenen Anmeldeinformationen können ungültig sein. Stellen Sie sicher, dass Sie die richtigen Anmeldeinformationen haben.
Sobald das Problem behoben ist, führen Sie das Shell-Skript erneut aus und die Erfolgsausgabe lautet ungefähr so;
$ sudo ./mail.sh
Ausgang:
220 smtp.gmail.com ESMTP h8sm1096aae22880pfo.64 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 UGFzqc3dmvcmQ36 235 2.7.0 Accepted MAIL FROM:<> 250 2.1.0 OK h8smqer10962480pfo.64 - gsmtp RCPT TO:<> 250 2.1.5 OK h8smqer10962480pfo.64 - gsmtp DATA 354 Go ahead h8sm10962880pfo.64 - gsmtp Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 From: "root" <> Date: Thu, 19 Sep 2019 21:45:14 +0530 Hey There! This is a test mail . 250 2.0.0 OK 1568909725 h8smqer10962480pfo.64 - gsmtp QUIT 221 2.0.0 closing connection h8smqer10962480pfo.64 - gsmtp