risposta-alla-domanda-sullo-sviluppo-web-bd.com

invia posta dal terminale Linux in una riga

So che esiste il comando mail in linux per inviare e-mail tramite la riga di comando. Come posso inviare una semplice email con una sola riga dal terminale?

Per esempio:

mail [email protected] [subject] [body]

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

Il motivo è che voglio inviare un breve messaggio via email a me stesso quando un evento specifico accade in un programma Java. L'idea è che userò Runtime.getRuntime() ... ecc. Per inviare mail command dal mio programma Java.

Ho usato cron per fare qualcosa di simile in passato, ma l'attuale implementazione non usa cron, quindi ho bisogno di provare invece.

136
cHam

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

Puoi installarlo tramite il tuo gestore di pacchetti preferito. Quindi devi configurarlo e una volta fatto, puoi inviare email come questa:

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

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 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.

Ad esempio, per gmail, segui http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ o qualsiasi altro tutorial simile .

191
PSkocik

È possibile utilizzare un eco con una pipe per evitare prompt o conferma.

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

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

28
Hengjie

Puoi anche usare sendmail:

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

Per gli utenti di Ubuntu: Innanzitutto è necessario installare mailutils

Sudo apt-get install mailutils

Imposta un server di posta elettronica, se stai usando 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" [email protected]

Se stai usando gmail e continui a ricevere qualche errore di autenticazione, devi modificare le impostazioni di gmail:

Attiva Access per app meno sicure da qui

11
Rohit Gupta

Puoi installare il pacchetto di posta in Ubuntu con il comando seguente.

Per Ubuntu -:

$ Sudo apt-get install -y mailutils

Per CentOs-:

$ Sudo yum install -y mailx

Comando di posta di prova:

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