it-swarm.com.de

Mail vom Linux-Terminal in einer Zeile senden

Ich weiß, dass es unter Linux den Befehl mail gibt, um E-Mails über die Befehlszeile zu senden. Wie kann ich eine einfache E-Mail mit einer Zeile vom Terminal aus senden?

Zum Beispiel:

mail [email protected] [subject] [body]

Und haben Sie die E-Mail ohne Bestätigung oder Aufforderung an den Benutzer gesendet?

Der Grund dafür ist, dass ich eine kurze Nachricht per E-Mail an mich selbst senden möchte, wenn ein bestimmtes Ereignis in einem Java -Programm eintritt. Die Idee ist, dass ich Runtime.getRuntime() ... usw. verwende, um den mail command aus meinem Java Programm zu senden.

Ich habe cron verwendet, um etwas Ähnliches zu tun, aber die aktuelle Implementierung verwendet cron nicht, daher muss ich dies stattdessen ausprobieren.

140
cHam

mail kann eine ganze Reihe von Programmen auf einem Linux-System darstellen. Was Sie dahinter haben wollen, ist entweder sendmail oder postfix . Letzteres empfehle ich.

Sie können es über Ihren bevorzugten Paketmanager installieren. Dann müssen Sie es konfigurieren, und sobald Sie das getan haben, können Sie E-Mails wie folgt senden:

 echo "My message" | mail -s subject [email protected]

Weitere Informationen finden Sie im Handbuch.

Was die Konfiguration von Postfix angeht, gibt es im Internet zahlreiche Artikel dazu. Sofern Sie sich nicht auf einem öffentlichen Server mit einer registrierten Domain befinden, möchten Sie die E-Mail im Allgemeinen an einen SMTP-Server weiterleiten, von dem Sie E-Mails senden können.

Folgen Sie für Google Mail beispielsweise http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ oder einem ähnlichen Tutorial.

196
PSkocik

Sie können ein Echo mit einer Pipe verwenden, um Eingabeaufforderungen oder Bestätigungen zu vermeiden.

echo "This is the body" | mail -s "This is the subject" [email protected]
35
richardson
echo "Subject: test" | /usr/sbin/sendmail [email protected]

Auf diese Weise können Sie dies innerhalb einer Befehlszeile tun, ohne eine Textdatei erneut ausgeben zu müssen. Diese Antwort baut auf der Antwort von @ mti2935 auf. Guthaben geht also dahin.

28
Hengjie

Für Ubuntu-Benutzer: Zuerst müssen Sie mailutils installieren

Sudo apt-get install mailutils

Richten Sie einen E-Mail-Server ein, wenn Sie Google Mail oder SMTP verwenden. folge dieser link . Verwenden Sie dann diesen Befehl, um eine E-Mail zu senden.

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

Wenn Sie Google Mail verwenden und dennoch ein Authentifizierungsfehler auftritt, müssen Sie die Einstellung von Google Mail ändern:

Aktivieren Sie Access für weniger sichere Apps von hier

12
Rohit Gupta

Sie können auch sendmail verwenden:

/usr/sbin/sendmail [email protected] < /file/to/send
12
mti2935

Sie können das Mail-Paket in Ubuntu mit dem folgenden Befehl installieren.

Für Ubuntu -:

$ Sudo apt-get install -y mailutils

Für CentOs-:

$ Sudo yum install -y mailx

Test Mail Befehl-:

$ echo "Mail test" | mail -s "Subject" [email protected]
5