Mail vom Linux-Terminal in einer Zeile senden [geschlossen]

148

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

Beispielsweise:

mail [email protected] [subject] [body]

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

Der Grund ist, dass ich eine kurze Nachricht per E-Mail an mich selbst senden möchte, wenn ein bestimmtes Ereignis in einem javaProgramm auftritt. Die Idee ist, dass ich Runtime.getRuntime()... usw. verwenden werde, um das mail commandvon meinem javaProgramm zu senden .

Früher cronhabe ich etwas Ähnliches gemacht, aber die aktuelle Implementierung wird nicht verwendet cron, daher muss ich dies stattdessen ausprobieren.

cHam
quelle
Verwenden Sie bulk mail CLIein effizientes und leistungsstarkes Tool, um dynamische E-Mails mit nur einem einfachen Befehl an eine Mailingliste zu senden : bulkmail mail! Spontane, mini, stressfreien E - Mail - Marketing mit diesem kleinen , aber leistungsstarken Werkzeug 💌 bulkmail.now.sh
Kumar Abhirup

Antworten:

209

Mail kann eine ganze Reihe von Programmen auf einem Linux-System darstellen. Was Sie dahinter wollen, ist entweder sendmail oder postfix . Ich empfehle letzteres.

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

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

Weitere Informationen finden Sie im Handbuch.

In Bezug auf die Konfiguration von Postfix 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 aus Sie E-Mails senden können.

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

PSkocik
quelle
4
Postfix ist leistungsstark, aber wenn Sie nur E-Mails senden müssen, versuchen Sie "ssmtp". Dieses Paket ist kleiner und führt keinen Daemon wie Postfix aus. Es unterstützt sichere Protokolle und funktioniert mit Google Mail.
o
6
"Das Programm 'mail' ist derzeit nicht installiert. Sie können es installieren, indem Sie Folgendes eingeben: apt-get install mailutils"
Tom
leichter: Pakete nullmailerplus bsd-mailx. Ausreichend für die meisten Arbeitsplätze :) Und da es nullmailereine sendmailSchnittstelle enthält, können Sie das bsd-mailxPaket sogar überspringen und den Ansatz von Hengjie verwenden .
Izzy
@ oᴉɹǝɥɔ ssmtpist veraltet. Verwenden Sie msmtpstattdessen.
Matt M.
36

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]
Richardson
quelle
32
echo "Subject: test" | /usr/sbin/sendmail [email protected]

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

Hengjie
quelle
2
Nur um die Antwort für das Thema und den Körper zu ergänzen: echo -e "Betreff: test \ n \ n Körperinhalt hier \ n" | sendmail [email protected]
emvidi
13

Sie können auch sendmail verwenden:

/usr/sbin/sendmail [email protected] < /file/to/send
mti2935
quelle
Hinweis: Ich habe Postfix + S-Nail. Das hat bei mir funktioniert. Zuerst habe ich die Antwort "Rohit Gupta" verwendet und die Mail-Dienstprogramme heruntergeladen, dann deine und alles hat funktioniert.
Mohammed Baashar
13

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. Folgen Sie diesem Link . Verwenden Sie dann diesen Befehl, um E-Mails zu senden.

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

Wenn Sie Google Mail verwenden und dennoch ein Authentifizierungsfehler angezeigt wird, müssen Sie die Einstellungen von Google Mail ändern:

Aktivieren Sie von hier aus den Zugriff für weniger sichere Apps

Rohit Gupta
quelle
-3

Einfache Mail senden:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl+ Dzum Schluss

abhilash
quelle
2
er fragt online Befehl.
Rohit Gupta