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 user@gmail.com [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.


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 user@gmail.com

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.


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.


32
echo "Subject: test" | /usr/sbin/sendmail user@domain.com

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.


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 user@domain.com
emvidi

13

Sie können auch sendmail verwenden:

/usr/sbin/sendmail user@domain.com < /file/to/send

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" username@domain.com

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



-3

Einfache Mail senden:

$ mail -s "test message from centos" recipient@example.com
hello from centos linux command line

Ctrl+ Dzum Schluss


2
er fragt online Befehl.
Rohit Gupta
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.