– 9 mail/mailx-Befehl Beispiele zum senden von E-Mails von der Kommandozeile unter Linux

Versenden von E-mails von der Kommandozeile aus

Die E-mail-Befehl ist ein wesentliches ein, die verfügbar sein sollten auf einem linux-server, so dass verschiedene Dienste und andere web-Anwendungen können erzeugen und übertragen von E-Mails.

In einem früheren Beitrag zu mail command haben wir gesehen, wie der Mail-Befehl zum Senden von E-Mails über die Befehlszeile auf Ihrem Linux-Server verwendet werden kann.,

In diesem Tutorial werden wir eine erweiterte Version des Mail-Befehls verwenden. Es heißt mailx (oder einfach mail, wenn installiert), und es kann viel mehr Dinge tun als das, was der ältere Mail-Befehl aus dem gnu mailutils-Paket tun kann.

Wie funktioniert es

Der Befehl mail / mailx benötigt einen lokalen SMTP-Server (MTA), der ausgeführt wird, um die E-Mails zu versenden. Die Route der E-Mail ist ungefähr so –

mail -> sendmail -> local MTA -> recipient MTA 

Der Empfänger-MTA wäre der SMTP-Server von Google Mail, wenn Ihr Empfänger jemand ist gmail.com zum Beispiel., Für den lokalen MTA müssen Sie einen SMTP-Server wie Postfix installieren. Eine grundlegende Installation von Postfix mit minimaler Konfiguration würde in den meisten Fällen funktionieren.

Installieren Sie den mailx-Befehl

Auf Ubuntu / Debian-basierten Systemen ist der mailx-Befehl aus 2 verschiedenen Paketen verfügbar –

1. heirloom-mailx
2. bsd-mailx

Wir werden das heirloom-mailx-Paket verwenden, da es mehr Funktionen und Optionen bietet.
Auf CentOS / Fedora-basierten Systemen gibt es nur ein Paket namens „mailx“, das Heirloom-Paket.,

Um herauszufinden, welches mailx-Paket auf Ihrem System installiert ist, überprüfen Sie die Ausgabe „man mailx“ und scrollen Sie bis zum Ende und Sie sollten einige nützliche Informationen sehen.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

Mit dem mailx-Befehl

Nach der Installation kann der mailx-Befehl direkt mit dem Namen mail referenziert werden.

1. Einfache mail

Führen Sie den folgenden Befehl aus, und mailx wartet dann darauf, dass Sie die Nachricht der E-Mail eingeben. Sie können enter für neue Zeilen drücken. Wenn Sie mit der Eingabe der Nachricht fertig sind, drücken Sie Strg+D und mailx zeigt EOT an.,

Nach als mailx liefert automatisch die E-Mail an das Ziel.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

2. Nachricht aus einer Datei nehmen

Der Nachrichtentext der E-Mail kann auch aus einer Datei entnommen werden.

$ mail -s "This is Subject" < /path/to/file

Die Nachricht kann auch mit dem Befehl echo weitergeleitet werden –

$ echo "This is message body" | mail -s "This is Subject" 

3. Mehrere Empfänger

Um die E-Mail an mehrere Empfänger zu senden, geben Sie alle durch ein Komma getrennten E-Mails an

$ echo "Dies ist Nachrichtentext" | mail-s "Dies ist Betreff" ,

4., CC und BCC

Mit den Optionen“- c „und“ – b “ können CC-bzw. BCC-Adressen hinzugefügt werden.

$ echo "Dies ist der Nachrichtentext" | mail-s "ist Dies Thema" -c 

5. Geben Sie von Name und Adresse

Um einen „VON“ Namen und Adresse anzugeben, verwenden Sie die Option „-r“. Dem Namen sollte die in „“ eingewickelte Adresse folgen.

$ echo "Dies ist der Nachrichtentext" | mail-s ", Unterliegt Dies" -r "Harry' <>" 

6., Geben Sie“ Reply-To “ – Adresse an

Die Antwort auf die Adresse wird mit der internen Optionsvariablen „replyto“ mit der Option „-S“ gesetzt.

7. Anhänge

Anhänge können mit der Option „-a“ hinzugefügt werden.

$ echo "Dies ist der Nachrichtentext" | mail-s ", Unterliegt Dies" -r "Harry' <>" -a /path/to/file 

8. Verwenden Sie externen SMTP-Server

Dies ist eine exklusive Funktion, die Sie nur mit heirloom mailx und nicht mit bsd mailx oder dem Mail-Befehl von gnu mailutils oder dem Mutt-Befehl erhalten.,

Der mailx-Befehl kann einen externen SMTP-Server verwenden, um die Nachricht weiterzuleiten. Die Syntax ist etwas lang, macht aber Sinn.

Hier ist eine Aufschlüsselung

Sie können die SMTP-Server von Google Mail verwenden und E-Mails über Ihr Google Mail-Konto senden. Das ist so cool!
Speziell für Google Mail müssten Sie weniger sichere Apps-Einstellungen aktivieren, bevor Sie solche E-Mails senden können.

9. Verbose-SMTP-Kommunikation überwachen

Bei Verwendung externer SMTP-Server können Sie die gesamte SMTP-Kommunikation im Hintergrund überwachen., Dies ist insbesondere beim Testen oder Debuggen von SMTP-Servern nützlich.

Fehlerbehebung

Falls die Mails nicht ordnungsgemäß zugestellt werden, müssen Sie einige Dinge überprüfen. Als erstes muss überprüft werden, ob ein SMTP-Server (mta) lokal ausgeführt wird. Der Befehl netstat kann feststellen, dass

Wenn ein STMP-Server wie Postfix ausgeführt wird und immer noch keine Mails gesendet werden, versuchen Sie beispielsweise, Postfix neu zu konfigurieren. Auf Ubuntu / Debian-Systemen kann dies mit dem Befehl dpkg-reconfigure

$ sudo dpkg-reconfigure postfix

Dann erneut versucht werden, der Befehl mail und es sollte funktionieren., Wenn dies immer noch nicht der Fall ist, wenden Sie sich an Ihren Serveranbieter.

Keine Mails von lokalen Systemen

Wenn Sie versuchen, E-Mails von Ihrem lokalen Computer an eine Google Mail-Adresse zu senden, wird Ihre E-Mail höchstwahrscheinlich abgelehnt.

Dies liegt daran, dass gewöhnliche Computer, die mit einer Internetadresse verbunden sind, eine IP-Adresse haben, die keiner gültigen Domäne als solcher zugeordnet ist, und Google Mail überprüft diese Anmeldeinformationen strikt, bevor E-Mails genehmigt werden.,

Notizen und Ressourcen

Neben mailx gibt es noch andere Tools wie Swaks und SMTP-cli, mit denen E-Mails über die Befehlszeile gesendet werden können und verschiedene Funktionen wie das Angeben von SMTP-Servern und das Hinzufügen von Anhängen usw. unterstützt werden.

Der mailx-Befehl ist jedoch in den Standard-Repositorys der gängigsten Distributionen verfügbar und kann daher problemlos installiert werden. Außerdem behält es eine Syntax bei, die der des Mail-Befehls sehr ähnlich ist, was es zu einem Ersatz für den älteren Mail-Befehl macht.,

Der Befehl mailx kann sogar E-Mails von entfernten IMAP-Servern lesen, aber das haben wir aus diesem Beitrag herausgehalten und würden später darüber sprechen. Um mehr zu erfahren, überprüfen Sie die Man-Seite für den mailx-Befehl mit „man mailx“.

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.