Articles

Linux mail command examples-invia mail da riga di comando

Posted by admin

Invia mail da riga di comando

Essere in grado di inviare e-mail da riga di comando da un server è molto utile quando è necessario generare e-mail in modo programmatico da script di shell o applicazioni web per esempio.

Questo tutorial spiega come usare il comando mail su linux per inviare mail dalla riga di comando usando il comando mail.,

Come funziona il comando mail

Per coloro che sono curiosi di sapere esattamente come il comando mail consegna le mail ai destinatari, ecco una piccola spiegazione veloce.

Il comando mail richiama il binario standard di sendmail (/usr/sbin / sendmail) che a sua volta si connette all’MTA locale per inviare la posta alla sua destinazione. L’MTA locale è un server smtp in esecuzione localmente che accetta mail sulla porta 25.

mail command -> /usr/sbin/sendmail -> local MTA (smtp server) -> recipient MTA (and Inbox)

Ciò significa che un server smtp come Postfix dovrebbe essere in esecuzione sulla macchina in cui si intende utilizzare il comando mail., Se nessuno è in esecuzione, viene visualizzato il messaggio di errore “invia-mail: Impossibile aprire mail:25”.

Installa il comando mail

Il comando mail è disponibile da molti pacchetti diversi. Questi pacchetti sono disponibili nei repository predefiniti della maggior parte delle distribuzioni linux popolari come debian, ubuntu, centos e fedora.

Ecco l’elenco di alcuni dei pacchetti comuni che forniscono il comando mail.

1. gnu mailutils
2. heirloom-mailx
3. bsd-mailx

Ogni sapore ha un diverso set di opzioni e funzionalità supportate., Ad esempio il comando mail/mailx dal pacchetto heirloom-mailx è in grado di utilizzare un server smtp esterno per inviare messaggi, mentre gli altri due possono utilizzare solo un server smtp locale.

In questo tutorial useremo il comando mail dal pacchetto mailutils, che è disponibile sulla maggior parte dei sistemi basati su Debian e Ubuntu.

Usa il comando apt-get per installarlo

$ apt-get install mailutils

Ora dovresti avere il comando mail pronto per funzionare.

mail command examples

Ecco alcuni esempi di come utilizzare il comando mail per inviare mail dalla riga di comando., Questi esempi ti daranno un’idea di base delle varie opzioni e funzionalità supportate dal comando mail.

Nota: Se si sta tentando di inviare una mail di prova ad alcuni provider di posta come Gmail o Outlook, è necessario eseguire questi comandi su un server con una configurazione corretta. Se si tenta di inviare posta da voi macchina locale o desktop, quindi la maggior parte dei filtri anti-spam sarebbe probabilmente bloccarlo.

1. Invio di una semplice mail

Eseguire il comando qui sotto, per inviare una e-mail all’opzione s specifica l’oggetto della posta seguito dall’indirizzo e-mail del destinatario.,

$ mail -s "Hello World" 

Il comando precedente non è terminato premendo Invio. Successivamente è necessario digitare il messaggio. Quando hai finito, premi ‘ Ctrl-D ‘all’inizio di una riga

$ mail -s "Hello World" Cc:Hi PeterHow are youI am fineGood Bye<Ctrl+D>

La shell richiede il campo’ Cc ‘ (Carbon copy). Inserire l’indirizzo CC e premere invio o premere invio senza nulla da saltare.

Dalla riga successiva digitare il messaggio. Premendo invio si creerebbe una nuova riga nel messaggio. Una volta che hai finito di inserire il messaggio, premere . Una volta fatto ciò, il comando mail invierà il messaggio per la consegna e fatto.

2., Oggetto e Messaggio in una singola riga

Per specificare il corpo del messaggio in una sola riga di comando utilizzare il seguente stile

$ mail -s "This is the subject" <<< 'This is the message'

O come questo

$ echo "This is the body" | mail -s "Subject" -aFrom:Harry\<\> 

3. Prendere il messaggio da un file

Se il messaggio e-mail è in un file, allora possiamo usarlo direttamente per inviare la posta. Questo è utile quando si chiama il comando mail da script di shell o altri programmi scritti in perl o php per esempio.

$ mail -s "Hello World" < /home/user/mailcontent.txt

O un liner rapido

$ echo "This is the message body" | mail -s "This is the subject" 

4., Specificare i destinatari CC e CCN

Altri parametri utili nel comando mail sono:

-c email-address (CC - send a carbon copy to email-address)-b email-address (BCC - send a blind carbon copy to email-address)

Ecco un esempio di come utilizzare queste opzioni

$ mail -s "Hello World" -c -b 

5. Invio a più destinatari

È anche possibile specificare più destinatari unendoli con una virgola.

$ mail -s "Hello World" ,

6. Specificare il nome e l’indirizzo DA

L’opzione “- a ” consente di specificare ulteriori informazioni di intestazione da allegare al messaggio. Può essere utilizzato per fornire il nome e l’indirizzo” DA”., Ecco un rapido esempio

# echo "Questo è il corpo del messaggio"/mail-s "Questo è l'oggetto" -aFrom: 

L’opzione a aggiunge fondamentalmente intestazioni aggiuntive. Per specificare il nome da, utilizzare la seguente sintassi.

echo echo "Questo è il corpo"/mail-s "Subject" -aFrom:Harry\<\> 

Nota che dobbiamo sfuggire alle frecce meno / grandi poiché hanno un significato speciale per il prompt della shell. Quando stai emettendo il comando da qualche script, lo ometteresti.

7., Invia posta a un utente di sistema locale

Per inviare posta a un utente di sistema locale basta usare il nome utente al posto dell’indirizzo del destinatario

$ mail -s "Hello World" username

Puoi anche aggiungere “@hostname” al nome utente, dove il nome host dovrebbe essere il nome host del sistema corrente.

8. Output dettagliato

A volte durante il test dei server di posta, è necessario controllare i comandi SMTP utilizzati dal comando mail., Utilizzare l’opzione” – v”per questo

$ mail -v -s "This is the subject" <<< 'This is the message'

Se la posta non riesce a consegnare a causa di un server di posta configurato in modo improprio, ad esempio, il log dei comandi smtp mostrerà cosa è andato storto.

Invia mail con allegati usando Mutt

Il comando mail potrebbe fare alcune cose di base fino ad ora, ma andando avanti, manca di funzionalità importanti come l’invio di allegati.

Quindi dobbiamo usare un altro strumento da riga di comando chiamato mutt. Mutt è come una versione migliorata del comando mail con una sintassi molto simile.

Gli utenti Debian / Ubuntu possono installare mutt con il comando apt.,

$ apt-get install mutt

Fedora/CentOS o Red Hat Enterprise Linux (RHEL) utenti:

$ yum install mutt

Ora siete pronti per inviare la posta con allegati con interfaccia a riga di comando.

Inviare una semplice mail

$ echo "This is mutt from universe" | mutt -s "This is mutts subject" 

Inviare una mail con allegato

Utilizzare la “a” opzione per specificare il percorso del file da allegare

$ mutt -s "Subject" -a /path/to/file -- < home/user/mailcontent.txt

Secondo la sintassi di mutt opzioni, è necessario separare i file e i destinatari con un doppio trattino “–“. Anche l’opzione”- a ” dovrebbe essere l’ultima.,

Invia mail con script bash/shell

Questo esempio dimostra come l’output di un comando può essere utilizzato come messaggio nell’e-mail.
Ecco uno script di shell facile che riporta l’utilizzo del disco su mail.

#!/bin/bashdu -sh | mail -s "disk usage report" 

Apri un nuovo file e aggiungi le righe sopra a quel file, salvalo ed esegui sulla tua casella. Riceverai un’e-mail che contiene l’output “du-sh”.

Leggi mail

Questo non è qualcosa di interessante e non lo faresti in uno scenario di vita reale. Viene mostrato solo per il gusto di farlo.

Il comando mail può essere usato per leggere le mail., Basta eseguirlo senza opzioni e elencherebbe tutte le mail nella tua casella di posta

$ mail

Ecco un output di esempio

$ mailHeirloom mailx version 12.5 6/20/10. Type ? for help."/var/mail/enlightened": 7 messages 3 unread O 1 Enlightened Sat Dec 6 11:33 21/658 This is the subject O 2 Enlightened Sat Dec 6 11:34 773/25549 This is the subject O 3 Enlightened Sat Dec 6 16:43 20/633 This is the subject O 4 Enlightened Sat Dec 6 16:44 20/633 This is the subject U 5 Mail Delivery Syst Sat Dec 6 16:50 74/2425 Undelivered Mail Returned to Sender U 6 Enlightened Sat Dec 6 16:51 19/632 This is mutts subject U 7 Enlightened Sat Dec 6 16:52 19/647 This is mutts subject?

Alla fine c’è il punto interrogativo q che è un prompt interattivo in attesa del tuo comando. Basta inserire il numero dell’e-mail che si desidera leggere e premere invio. Allora aprirebbe la posta.

Dopo aver letto l’e-mail, inserisci ‘q’ e premi invio per tornare indietro. Inserisci z e premi invio per riportare l’elenco delle e-mail.

Il comando mail di default legge le email dalla directory “/var/mail/”., Quindi ogni utente ha una directory di posta separata.

Questo modo di memorizzare e recuperare le mail non è molto utile o pratico nella vita reale, dove l’indirizzo di posta elettronica è costituito da un nome di dominio insieme al nome utente e un singolo server potrebbe ospitare e-mail per più domini.

Maildir-utils command

‘mu’ è un insieme di strumenti da riga di comando per Linux / Unix che consentono di trovare rapidamente le e-mail che stai cercando.,

Gli utenti Debian/Ubuntu possono usare il comando apt-get per installarlo

# apt-get install maildir-utils

Per cercare mail da william con subject report usa il seguente comando-

$ mu find from:william subject:report

Per controllare le configurazioni di posta correnti usa l’opzione info.

# mu-tool infoVERSION=2.99.97SYSCONFDIR=/etcMAILSPOOLDIR=/var/mail/SCHEME=mboxLOG_FACILITY=mail.....

Note e risorse

Il comando mail è un comando molto semplice per inviare mail. Dovrebbe essere presente e configurato correttamente su qualsiasi server Linux, in modo che le mail siano generate e consegnate correttamente.,

Il comando mail viene utilizzato principalmente quando si scrivono script bash per inviare e-mail da un server in modo automatico. Oltre a questo, il comando mail non è molto utile come soluzione di posta elettronica.

Se hai bisogno di impostare un sistema di posta elettronica completo sul tuo server con la possibilità di inviare e ricevere email sul tuo dominio, vai avanti e installa applicazioni come postfix, dovecot.

Controlla questo articolo:
Installa Postfix mail server e Dovecot su Ubuntu o Debian

Se stai cercando un programma di mailing più potente usa comandi come mailx,swaks ecc., Hanno le opzioni necessarie per specificare anche server smtp esterni.

Leave A Comment