invia posta dal terminale linux in una riga [chiuso]


148

So che c'è il comando mailin Linux per inviare e-mail tramite riga di comando. Come posso inviare una semplice e-mail con una linea dal terminale però?

Per esempio:

mail user@gmail.com [subject] [body]

E l'email è stata inviata senza alcuna conferma o richiesta all'utente?

Il motivo è che voglio inviare un breve messaggio via e-mail a me stesso quando si verifica un evento specifico in un javaprogramma. L'idea è che userò Runtime.getRuntime()... ecc. Per inviarlo mail commanddal mio javaprogramma.

In passato facevo cronqualcosa di simile, ma l'implementazione corrente non viene utilizzata cron, quindi devo provarlo.


Usa bulk mail CLIuno strumento efficiente e potente per inviare e-mail dinamiche a una mailing list con un solo semplice comando bulkmail mail:! Fai un marketing via e-mail veloce, mini e senza problemi con questo piccolo ma potente strumento 💌 bulkmail.now.sh
Kumar Abhirup

Risposte:


209

la posta può rappresentare un bel paio di programmi su un sistema linux. Quello che vuoi dietro è sendmail o postfix . Raccomando quest'ultimo.

Puoi installarlo tramite il tuo gestore pacchetti preferito. Quindi devi configurarlo e, una volta fatto, puoi inviare e-mail in questo modo:

 echo "My message" | mail -s subject user@gmail.com

Vedere il manuale per ulteriori informazioni.

Per quanto riguarda la configurazione di postfix, ci sono molti articoli su Internet su come farlo. A meno che non ci si trovi su un server pubblico con un dominio registrato, in genere si desidera inoltrare l'e-mail a un server SMTP da cui è possibile inviare e-mail.

Per gmail, ad esempio, seguire http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ o qualsiasi altro tutorial simile.


4
Postfix è potente ma se devi solo inviare e-mail prova "ssmtp". Questo pacchetto è più piccolo e non esegue un demone come Postfix. Supporta protocolli sicuri e funziona con Gmail.
oᴉɹǝɥɔ

6
"Il programma 'mail' non è attualmente installato. Puoi installarlo digitando: apt-get install mailutils"
Tom

più leggero: pacchetti nullmailerplus bsd-mailx. Sufficiente per la maggior parte delle postazioni di lavoro :) E poiché nullmailerinclude sendmailun'interfaccia, potresti persino saltare il bsd-mailxpacchetto e utilizzare l'approccio di Hengjie .
Izzy,

@ oᴉɹǝɥɔ ssmtpè obsoleto. Usa msmtpinvece.
Matt M.


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

Ciò consente di farlo all'interno di una riga di comando senza dover ripetere l'eco di un file di testo. Questa risposta si basa sulla risposta di @ mti2935. Quindi il merito va lì.


2
Solo per aggiungere la risposta per soggetto e corpo: echo -e "Oggetto: test \ n \ n Contenuto del corpo qui \ n" | sendmail user@domain.com
emvidi

13

Puoi anche usare sendmail:

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

Nota: ho Postfix + S-Nail. Questo è ciò che ha funzionato per me. Prima ho usato la risposta "Rohit Gupta" e scaricato le utility di posta, poi ho fatto il tuo e tutto ha funzionato.
Mohammed Baashar,

13

Per gli utenti Ubuntu: per prima cosa devi installare mailutils

sudo apt-get install mailutils

Configurare un server di posta elettronica, se si utilizza Gmail o SMTP. segui questo link . quindi utilizzare questo comando per inviare e-mail.

echo "this is a test mail" | mail -s "Subject of mail" username@domain.com

Nel caso in cui si stia utilizzando Gmail e si stia ancora verificando un errore di autenticazione, è necessario modificare le impostazioni di Gmail:

Attiva Accesso per app meno sicure da qui



-3

Invio di posta semplice:

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

Ctrl+ Dper finire


2
sta chiedendo il comando on line.
Rohit Gupta,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.