Bash-Skript zum Senden von E-Mails

Bash Script Send Email



E-Mail ist in der heutigen Welt ein sehr verbreitetes Kommunikationsmedium. Jeder kann durch Senden der E-Mail problemlos mit Freunden, Familienmitgliedern und Kollegen kommunizieren oder beliebige Dokumente teilen. Im Allgemeinen verwenden die Leute jeden kostenlosen E-Mail-Server wie Gmail, Yahoo, Hotmail usw. zum Senden der E-Mail. Sie können jedoch im Linux-Betriebssystem problemlos E-Mails über die Befehlszeile senden. Es gibt viele Möglichkeiten, E-Mails unter Linux zu senden. In diesem Tutorial werden einige gängige und einfache Möglichkeiten zum Senden von E-Mails im Ubuntu-Betriebssystem vom Terminal aus gezeigt.

Initialisierung:

Viele Linux-Befehle sind zum Senden von E-Mails über die Befehlszeile oder mithilfe eines Bash-Skripts verfügbar. Jeder Befehl zum Senden von E-Mails funktioniert jedoch nicht, wenn kein SMTP-Server ordnungsgemäß im System eingerichtet ist. Sie können Ihren eigenen SMTP-Server einrichten, um E-Mails über die Befehlszeile zu senden, oder Sie können einen kostenlosen SMTP-Server eines bekannten E-Mail-Dienstanbieters wie Gmail oder Yahoo verwenden. In diesem Tutorial wird der SMTP-Server eines Gmail-Kontos verwendet. Um diese Aufgabe auszuführen, müssen Sie ein Gmail-Konto auswählen und die Option 'Weniger sichere Apps zulassen' aktivieren, damit dieses Konto die E-Mail senden kann. Sie können das folgende Tutorial besuchen, um diese Option zu aktivieren.







https://linuxhint.com/how-to-send-email-from-php/



Nachdem Sie diese Option aktiviert haben, müssen Sie die Datei ‘ /etc/ssmtp/ssmtp.conf’ mit ‘root’-Rechten öffnen und die folgenden Zeilen am Ende der Datei hinzufügen. Sie müssen Ihre E-Mail-Adresse auf „AuthUser“ und Ihr E-Mail-Passwort auf „AuthPass“ setzen, um die Einrichtung abzuschließen.



STARTTLS verwenden=JA
FromLineOverride=JA
Wurzel=admin@beispiel.com
Mailhub=smtp.googlemail.com:587
AuthUser=Benutzername@gmail.com
AuthPass=Passwort

Beispiel-1: Verwenden des Sendmail-Befehls

Einer der beliebtesten E-Mail-Versandbefehle von Linux ist `sendmail`. Der Benutzer kann mit diesem Befehl einfach E-Mails über die Befehlszeile senden. Wenn das Sendmail-Paket nicht im System installiert ist, führen Sie den folgenden Befehl aus, um das Paket zu installieren.





$sudogeeignetInstallierenssmtp

Angenommen, der E-Mail-Inhalt wird in einer Datei namens „email.txt“ mit dem folgenden Inhalt gespeichert. Hier wird der Text nach dem ‚Betreff:‘ als E-Mail-Betreff und der restliche Teil als E-Mail-Body gesendet.

email.txt



Betreff: E-Mail mit sendmail senden
E-Mail-Text testen

Führen Sie den Befehl 'sendmail' mit der E-Mail-Adresse des Empfängers wie den folgenden Befehl aus.

$sendmailNutzername@gmail.com<email.txt

Beispiel-2: Verwenden des Befehls „mail“

Der gebräuchlichste Befehl zum Senden von E-Mails unter Linux ist der Befehl `mail`. Dieser Befehl ist unter Ubuntu standardmäßig nicht installiert. Führen Sie den folgenden Befehl aus, um den Befehl `mail` zu installieren.

$sudogeeignetInstallierenmailutils

Der folgende Befehl zeigt die Version dieses Befehls an, wenn er im System installiert ist.

$mail-V

Die Option ‚-s‘ wird im Befehl ‚mail‘ verwendet, um den Betreff der E-Mail zu definieren. Führen Sie den Befehl 'mail' mit der Option '-s' mit dem E-Mail-Betreff und der E-Mail-Adresse des Empfängers wie im folgenden Befehl aus. Es wird nach Cc gefragt: Adresse. Wenn Sie das Feld Cc: nicht verwenden möchten, lassen Sie es leer und drücken Sie die Eingabetaste. Geben Sie den Nachrichtentext ein und drücken Sie Strg+D, um die E-Mail zu senden.

$mail-S 'Gegenstand'Nutzername@gmail.com

Wenn Sie dem Befehl einen E-Mail-Nachrichtentext hinzufügen möchten, verwenden Sie ‘<<<’ operator like the following command.

$mail-S 'Betreff der Nachricht'Nutzername@gmail.com<<< 'Nachrichtentext testen'

Sie können die E-Mail-Adresse des Absenders auch mit dem Befehl 'mail' hinzufügen, indem Sie die Option '-a' verwenden. Der folgende Befehl sendet die E-Mail mit dem Betreff „Nachrichtenbetreff“, dem Namen und der E-Mail-Adresse des Absenders, „Admin<[E-Mail geschützt]>’ und E-Mail-Adresse des Empfängers,[E-Mail geschützt]und Nachrichtentext, 'Testnachricht'.

$ mail-S 'Betreff der Nachricht' -zuVon:Admin<Administrator@beispiel.com >
Nutzername@gmail.com<<< 'Testnachricht'

Sie können auch einen E-Mail-Nachrichtentext senden, indem Sie den Befehl echo und pipe( | ) verwenden. Der folgende Befehl verwendet den Pipe-Befehl (|), um den Nachrichtentext zu senden.

$rauswerfen 'Testnachricht' |mail-S 'Betreff der Nachricht'Nutzername@beispiel.com

E-Mails können an mehrere Empfänger gesendet werden, indem Sie den Befehl 'mail' verwenden und die Adressen der Empfänger durch Trennen von Kommas hinzufügen. Mit dem folgenden Befehl wird eine E-Mail an zwei Empfänger gesendet.

$mail-S 'E-Mail testen'Benutzername1@example.com , Benutzername2@beispiel.com<test.txt

Beispiel-3: Verwendung des `mutt`-Befehls

Wie der Befehl `mail` ist der Befehl `mutt` standardmäßig nicht auf Ubuntu installiert. Führen Sie den folgenden Befehl aus, um den Befehl `mutt` zu installieren.

$sudogeeignetInstallierenKöter

Der Befehl `mutt` funktioniert ähnlich wie der Befehl `mail`, aber der Befehl `mutt` hat einen eigenen Editor zum Senden der E-Mail. Führen Sie den folgenden Befehl mit der gültigen E-Mail-Adresse aus, um die E-Mail zu senden.

$rauswerfenTestnachricht|Köter-S 'E-Mail testen'Nutzername@beispiel.com

Sie können jede Datei mit der Option ‚-a‘ mit dem Befehl ‚mail‘ oder ‚mutt‘ anhängen. Mit dem folgenden Befehl wird die Datei items.txt beim Senden der E-Mail angehängt.

$rauswerfen 'Testnachricht' |Köter-S 'Betreff der Nachricht' -zuitems.txt-Nutzername@gmail.com

Beispiel-4: Verwenden des 'SSMTP'-Befehls

Ein weiterer E-Mail-Befehl ist der Befehl `ssmtp`. Wenn ssmtp noch nicht installiert ist, installieren Sie zuerst das Paket. Der Installationsbefehl für ssmtp wird im Beispiel-1 gezeigt. ssmtp- und sendmail-Befehle funktionieren ähnlich.

Führen Sie den folgenden Befehl mit der gültigen E-Mail-Adresse aus. Geben Sie den Betreff und den Text der E-Mail ein. Drücken Sie Strg+D, um den Vorgang zu beenden und die E-Mail zu senden.

$ssmtp-Benutzername@gmail.com

Beispiel-5: Verwendung des mailx-Befehls

Sie können HTML-Inhalte als E-Mail-Text senden, ohne nur die Textnachricht zu senden. Erstellen Sie eine HTML-Datei namens „test.html“, die Sie als Nachrichtentext verwenden möchten.

test.html

< html >
< Karosserie >>
< h3 >E-Mail-Versand</ h3 >
< machen Größe='2' Farbe='Netz'>Nachrichtentext testen</ machen >
<</ Karosserie >
</ html >

Der Befehl `mailx` funktioniert wie der Befehl `mail`. Sie müssen Content-Type als text/html angeben, um HTML-Inhalte als Nachrichtentext im `mailx`-Befehl zu senden. Der folgende Befehl sendet den Inhalt der Datei „test.html“ als E-Mail-Nachrichtentext.

$ mailx-zu 'Inhaltstyp: text/html' -S 'E-Mail mit mailx senden'
<test.html' [E-Mail geschützt] '

Wenn Sie den Posteingang des E-Mail-Kontos des Empfängers überprüfen, wird die Liste der E-Mails wie in der folgenden Abbildung angezeigt.

Abschluss

Nachdem Sie die obigen Befehle richtig geübt haben, hoffen Sie, dass der Leser unter Linux problemlos E-Mails über die Befehlszeile senden kann.