9 mail/mailx esempi di comandi per inviare e-mail da riga di comando su Linux

Invia mail da riga di comando

Il comando mail è essenziale che dovrebbe essere disponibile su qualsiasi server linux in modo che i vari servizi e altre applicazioni web in grado di generare e trasmettere messaggi di posta elettronica.

In un precedente post su mail command abbiamo visto come il comando mail può essere utilizzato per inviare e-mail dalla riga di comando sul server linux.,

In questo tutorial useremo una versione migliorata del comando mail. Si chiama mailx (o solo mail quando installato), e può fare molte più cose di quello che può fare il vecchio comando di posta del pacchetto gnu mailutils.

Come funziona

Il comando mail / mailx ha bisogno di un server smtp locale (MTA) in esecuzione per consegnare le e-mail. Il percorso seguito dall’e-mail è un po ‘ come questo-

mail -> sendmail -> local MTA -> recipient MTA 

Il destinatario MTA sarebbe il server smtp di Gmail se il destinatario è qualcuno a gmail.com per esempio., Per l’MTA locale, è necessario installare un server smtp come Postfix. Un’installazione di base di Postfix con configurazione minima funzionerebbe nella maggior parte dei casi.

Installa il comando mailx

Su sistemi basati su Ubuntu/Debian il comando mailx è disponibile da 2 diversi pacchetti-

1. heirloom-mailx
2. bsd-mailx

Useremo il pacchetto heirloom-mailx perché ha più funzioni e opzioni.
Sui sistemi basati su CentOS/Fedora, c’è solo un pacchetto chiamato “mailx” che è il pacchetto heirloom.,

Per scoprire quale pacchetto mailx è installato sul tuo sistema, controlla l’output “man mailx” e scorri verso il basso fino alla fine e dovresti vedere alcune informazioni utili.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

Utilizzando il comando mailx

Una volta installato, il comando mailx può essere referenziato direttamente con il nome mail, quindi è sufficiente digitarlo nella riga di comando.

1. Simple mail

Esegui il seguente comando, quindi mailx aspetterà che tu inserisca il messaggio dell’e-mail. È possibile premere invio per nuove linee. Quando hai finito di digitare il messaggio, premi Ctrl + D e mailx visualizzerà EOT.,

Dopo di mailx consegna automaticamente l’e-mail alla destinazione.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

2. Prendere messaggio da un file

Il corpo del messaggio di posta elettronica può essere preso da un file pure.

$ mail -s "This is Subject" < /path/to/file

Il messaggio può anche essere convogliato usando il comando echo-

$ echo "This is message body" | mail -s "This is Subject" 

3. Destinatari multipli

Per inviare la posta a più destinatari, specificare tutte le e-mail separate da una virgola

 echo echo "This is message body" | mail-s "This is Subject" ,

4., CC e CCN

Le opzioni “-c” e “-b” possono essere utilizzate per aggiungere rispettivamente gli indirizzi CC e CCN.

 echo echo "Questo è il corpo del messaggio | / mail-s"Questo è Oggetto" - c 

5. Specificare da nome e indirizzo

Per specificare un nome e un indirizzo “DA”, utilizzare l’opzione “-r”. Il nome deve essere seguito dall’indirizzo avvolto in “”.

echo echo "Questo è il corpo del messaggio"/mail-s "Questo è Oggetto" -r "Harry<>" 

6., Specificare l’indirizzo” Reply-To ”

L’indirizzo reply to viene impostato con la variabile di opzione interna “replyto” utilizzando l’opzione “-S”.

7. Allegati

Gli allegati possono essere aggiunti con l’opzione “-a”.

echo echo "Questo è il corpo del messaggio"/mail-s "Questo è Oggetto" -r "Harry<>"- a/path/to/file 

8. Usa server SMTP esterno

Questa è una caratteristica esclusiva, che si ottiene solo con heirloom mailx e non bsd mailx, o il comando mail di gnu mailutils o il comando mutt.,

Il comando mailx può utilizzare un server smtp esterno da utilizzare per inoltrare il messaggio. La sintassi è un po ‘ lunga ma ha senso.

Ecco una ripartizione

È possibile utilizzare i server smtp di Gmail e inviare e-mail tramite il tuo account Gmail. Che figata!
Per Gmail in particolare è necessario abilitare le impostazioni delle app meno sicure prima di poter inviare posta in questo modo.

9. Verbose-watch smtp communication

Quando si utilizzano server smtp esterni, è possibile scegliere di guardare l’intera comunicazione smtp che viene eseguita in background., Questo è utile specialmente durante il test o il debug dei server smtp.

Risoluzione dei problemi

Nel caso in cui le mail non vengano consegnate correttamente è necessario controllare alcune cose. La prima cosa da verificare è che un server smtp (mta) è in esecuzione localmente. Il comando netstat può dire che

Se un server stmp come Postfix è in esecuzione e ancora mail non stanno andando, quindi provare a riconfigurare Postfix per esempio. Sui sistemi Ubuntu/Debian, questo può essere fatto con il comando dpkg-reconfigure

$ sudo dpkg-reconfigure postfix

Quindi riprovare, il comando mail e dovrebbe funzionare., Se ancora non lo fa, provare a contattare il provider del server.

Nessuna mail dai sistemi locali

Se provi a inviare mail dal tuo computer locale a un indirizzo gmail, la tua posta molto probabilmente verrà rifiutata, quindi non provare a farlo.

Questo perché i normali computer connessi all’indirizzo Internet hanno un indirizzo ip che non è associato a nessun dominio valido in quanto tale e gmail verifica rigorosamente tali credenziali prima di approvare qualsiasi posta da passare.,

Note e risorse

Oltre a mailx, ci sono altri strumenti come Swaks e smtp-cli che possono essere utilizzati per inviare mail da riga di comando e supportare varie funzionalità come specificare server smtp e aggiungere allegati e così via.

Tuttavia il comando mailx è disponibile nei repository predefiniti delle distribuzioni più comuni, quindi può essere installato facilmente. Inoltre mantiene una sintassi molto simile a quella del comando mail che lo rende un drop in sostituzione del vecchio comando mail.,

Il comando mailx è anche in grado di leggere mail da server IMAP remoti, ma questo è qualcosa che abbiamo tenuto fuori da questo post e ne parleremo più tardi. Per saperne di più controllare la pagina man per il comando mailx con “man mailx”.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *