GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Senden Sie eine E-Mail vom Linux-Terminal oder Skript mit dem Befehl mail

Es gibt andere Terminal-basierte Befehlszeilen-Clients, die ebenfalls zum Senden von E-Mails verwendet werden können, wie sendmail, mutt, SSMTP, telnet, aber in dieser Anleitung konzentrieren wir uns auf mail Befehl.

Der Befehl mail ruft die Standard-Sendmail-Binärdatei (/usr/sbin/sendmail) auf, die sich wiederum mit dem lokalen MTA verbindet, um die Mail an ihr Ziel zu senden. Der lokale MTA ist ein lokal laufender SMTP-Server, der Mails auf Port 25 entgegennimmt.

Das bedeutet, dass ein SMTP-Server wie Postfix auf dem Rechner laufen sollte, auf dem Sie den Mail-Befehl verwenden möchten. Wenn keine läuft, erhalten Sie die Fehlermeldung "send-mail:Cannot open mail:25".

Installation

Installieren Sie mit diesem Befehl:

Für Ubuntu

sudo apt-get install mailutils 

Für Centos 7

sudo yum install -y mailx

Für Centos 8/Alma Linux/Rhel

sudo dnf install -y mailx

Testen Sie mit diesem Befehl, ob der Befehl erfolgreich installiert wurde:

mail

Der obige Befehl prüft, ob eine E-Mail für den aktuellen Benutzer vorhanden ist. Sie sollten eine Ausgabe wie diese sehen:

➜ mail
No mail for centos

Nutzung

Senden einer einfachen E-Mail

Verwenden Sie diesen Befehl, um eine E-Mail an [email protected] zu senden . Das -s Befehlszeilenargument dient zur Angabe des Betreffs.

mail -s "Test mail" [email protected]

Der obige Befehl wird blockiert, wenn Sie die Eingabetaste drücken und darauf warten, dass Sie Ihre Nachricht eingeben. Wenn Sie fertig sind, verwenden Sie Ctrl-D um den E-Mail-Client zu benachrichtigen, dass Sie fertig sind und die E-Mail zum Senden bereit ist.

❯ mail -s "Test mail" [email protected]
Hey John,

Please remember to send me the Linux Book.

Regards,
Me.
EOT

Der EOT wurde eingegeben, als ich Ctrl-D drückte . Sobald Sie dies getan haben, würde der Mail-Befehl die Nachricht zur Zustellung versenden und fertig.

Nachricht mit Inhalt aus einer Datei senden

Verwenden Sie diesen Befehl, um eine Nachricht aus der Datei /path/to/file.txt zu senden .

mail -s "Test mail" [email protected] < /path/to/file.txt

Sie können auch diesen einen Liner verwenden, in dem Sie den zu sendenden Inhalt echoen und ihn dann an den Mail-Befehl weiterleiten.

echo "Hello world" | mail -s "Test mail" [email protected]

E-Mail an mehrere Empfänger senden

Um eine E-Mail an mehrere Empfänger zu senden, können Sie eine durch Kommas getrennte Liste von E-Mails verwenden, wie in diesem Beispiel:

echo "Hello world" | mail -s "Test mail" [email protected],[email protected]

CC- und BCC-Empfänger hinzufügen

Blind Carbon Copy (BCC) und Carbon Copy (CC)-Adresse können ebenfalls angehängt werden. Verwenden Sie -c <email> für CC und -b <email> für bcc.

Dieses Beispiel gibt CC und BCC an:

echo "Hello world" | mail -s "Test mail" -c [email protected] -b [email protected]

Geben Sie den Absendernamen und die Adresse an

Sie können die Option -r verwenden um den Namen und die Adresse des Absenders wie folgt anzugeben:

echo "Hello world" | mail -s "Test mail" –r "Kip<[email protected]>" [email protected]

Alternativ können Sie -a verwenden um einen zusätzlichen Header an die Nachricht anzuhängen. Hier ist ein Beispiel dafür, wie FROM bereitgestellt wird als Teil davon.

echo "Hello world" | mail -s "Test mail" [email protected] -aFrom:[email protected]

Um den Absendernamen anzugeben, verwenden Sie die folgende Syntax:

echo "Hello world" | mail -s "Test mail" [email protected] --aFrom:Kip\<[email protected]\>

Bitte beachten Sie, dass wir die kleinen und großen Pfeile maskieren müssen, da sie eine besondere Bedeutung für den Shell-Prompt haben. Wenn Sie den Befehl aus einem Skript heraus eingeben, würden Sie das weglassen.

Antwortadresse angeben

Verwenden Sie den replyto um die Antwortadresse wie in diesem Beispiel anzugeben:

echo "Hello world" | mail -s "Test mail" [email protected] [email protected]

E-Mail mit Anhang

Senden Sie eine E-Mail von [email protected] an [email protected] mit Anhang.

mail -s "The File you requested" -a ~/Documents/file.txt -r [email protected] [email protected] <<EOF
Hi jane,

Please find the file requested attached.

Kind Regards,
John.
EOF

E-Mail an einen lokalen Systembenutzer

Um eine E-Mail an einen lokalen Systembenutzer zu senden, geben Sie anstelle des Empfängers nur den Benutzernamen an. Sie können den Hostnamen anhängen, dies ist jedoch nicht erforderlich, indem Sie @hostname verwenden .

mail -s "Test Subject" username 

Ausführlich aktivieren

Wenn Sie überprüfen müssen, was los ist, während die E-Mail verarbeitet wird, aktivieren Sie die ausführliche Ausgabe mit dem Argument -v . Dies ist gut für die Fehlerbehebung, wenn Sie beispielsweise die SMTP-Befehle überprüfen möchten, die vom Mail-Befehl verwendet werden. Hier ist ein Beispiel:

mail -v -s "Hello theere" [email protected] <<< 'This is the message' 

Linux
  1. 4 Möglichkeiten zum Senden von E-Mail-Anhängen über die Linux-Befehlszeile

  2. Wie sende ich E-Mails über einen externen SMTP-Server mit dem Befehl mailx in Linux?

  3. Wie sende ich eine HTML-E-Mail mit dem Linux-Befehl „mail“?

  4. So verwenden Sie SSMTP zum Senden einer E-Mail vom Linux-Terminal

  5. matlab Skript von der Linux-Befehlszeile ausführen

4 Befehle zum Herunterfahren von Linux vom Terminal aus

Tutorial zur Verwendung des letzten Befehls im Linux-Terminal

Senden Sie E-Mail in Linux von der Befehlszeile aus

Cut auf Linux Terminal verwenden

Mutt, Mail und Telnet – Senden Sie E-Mails von der Linux-Befehlszeile oder dem Terminal

Wie füge ich mit dem Linux-Mail-Befehl eine neue Zeile in die E-Mail ein?