Per chi gestisce server o lavora su attività di automazione, sapere come inviare email dal terminale Linux è essenziale. Questo approccio offre il pieno controllo sulle funzioni di posta elettronica ed elimina la necessità di programmi complessi. È particolarmente utile in scenari in cui velocità e semplicità sono fondamentali.
Strumenti comuni come sendmail e mailx vengono spesso utilizzati per inviare messaggi, verificare impostazioni SMTP, automatizzare avvisi e integrarsi con script. Sono semplici ma efficaci — perfetti per informare i team sugli aggiornamenti del server, automatizzare report o testare configurazioni email.
Questa guida è pensata per utenti che desiderano gestire la posta direttamente dal terminale. Copre l’installazione degli strumenti essenziali e approfondisce attività avanzate come l’invio di allegati e la configurazione degli strumenti di posta.
I due strumenti più utilizzati — sendmail e mailx — sono soluzioni affidabili per l’invio della posta in Linux e offrono numerosi vantaggi:
I client email tradizionali possono essere lenti e pesanti. Questi strumenti permettono invii rapidi e leggeri direttamente dal terminale.
Si integrano facilmente con script shell, processi cron e strumenti di monitoraggio. È possibile automatizzare avvisi e notifiche ricorrenti.
Rendere più semplice il debug delle configurazioni SMTP. Questi comandi offrono visibilità sul processo di consegna e facilitano l’analisi di log ed errori.
Che si tratti di inviare avvisi o generare report automatici, sendmail e mailx offrono versatilità per diverse esigenze operative.
Prima di utilizzare questi strumenti email nel Linux terminal, assicurati di avere:
Accesso al terminale: in alcuni casi sono richiesti privilegi di root.
Un server SMTP: necessario per testare l’invio delle email.
Strumenti installati: verifica che sendmail e mailx siano presenti e funzionanti.
I server SMTP sono indispensabili per l’invio di email. Esistono due categorie principali:
Server SMTP esterni
Server SMTP locali
Sono server di posta gestiti da provider terzi. Consentono l’invio di email verso destinatari esterni alla rete locale e garantiscono:
consegna globale,
autenticazione,
crittografia,
protezione antispam.
Indirizzo: smtp.gmail.com
Porta: 587 (TLS) o 465 (SSL)
Indirizzo: smtp.office365.com
Porta: 587
Questi server richiedono autenticazione (username, password o password specifiche app) e una connessione cifrata TLS/SSL.
Nota: abbiamo già fornito una guida per configurare server SMTP esterni. Il comando per l’invio tramite Postfix rimane lo stesso: basta configurare le credenziali SMTP e sostituire l’indirizzo email con quello del provider scelto.
Operano esclusivamente all’interno di una rete interna. Perfetti per:
inviare email tra utenti locali (tom@office.local → jerry@office.local),
attività di test e sviluppo,
comunicazioni interne,
ambienti che non richiedono accesso internet per la posta interna.
sudo apt install postfix
sudo nano /etc/postfix/main.cf
Impostazioni principali:
myhostname = mail.office.local
mydomain = office.local
myorigin = $mydomain
inet_interfaces = loopback-only
local_recipient_maps = proxy:unix:passwd.byname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Riavviare Postfix:
sudo systemctl restart postfix
sudo adduser linux
sudo adduser hostman
Crea indirizzi come linux@office.local.
sendmail è uno dei mail transfer agent (MTA) più diffusi in Linux. Funziona con server SMTP per inviare email da sistemi locali o script.
sudo apt install sendmail
sudo yum install sendmail
sudo systemctl start sendmail
sudo systemctl enable sendmail
echo "Testing sendmail setup" | sendmail -v your-email@example.com
Verifica dei messaggi ricevuti:
mail
Installare mailutils se necessario:
sudo apt install mailutils
Oppure:
cat /var/mail/user
sudo nano /etc/mail/sendmail.mc
Esempio: definire il dominio:
define(`confDOMAIN_NAME', `your_domain.com')dnl
Rigenerare la configurazione:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Se compare “permission denied”:
sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"
Riavviare:
sudo systemctl restart sendmail
nano email.txt
Contenuto:
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
sendmail recipient@example.com < email.txt
mail
sendmail non supporta allegati nativamente; bisogna usare uuencode.
Installare sharutils:
sudo apt install sharutils
Invio con allegato:
( echo "Subject: Email with attachment"; uuencode file.txt file.txt ) | sendmail recipient@example.com
Verifica:
mail
mailx è un'applicazione semplice ed efficace per gestire email via terminale. Fa parte del pacchetto mailutils nella maggior parte delle distribuzioni.
sudo apt install mailutils
sudo yum install mailx
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Inviare email dalla riga di comando in Linux è un metodo potente per automatizzare comunicazioni, diagnosticare server o testare configurazioni. Con sendmail e mailx, puoi gestire messaggi semplici o configurazioni avanzate con allegati. Questa guida fornisce istruzioni dettagliate per iniziare facilmente e migliorare il tuo flusso di lavoro.