Come inviare email in Linux dalla riga di comando con Sendmail e Mailx
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.
Perché usare strumenti email da riga di comando? Copia link
I due strumenti più utilizzati — sendmail e mailx — sono soluzioni affidabili per l’invio della posta in Linux e offrono numerosi vantaggi:
Efficienza Copia link
I client email tradizionali possono essere lenti e pesanti. Questi strumenti permettono invii rapidi e leggeri direttamente dal terminale.
Automazione Copia link
Si integrano facilmente con script shell, processi cron e strumenti di monitoraggio. È possibile automatizzare avvisi e notifiche ricorrenti.
Risoluzione problemi SMTP Copia link
Rendere più semplice il debug delle configurazioni SMTP. Questi comandi offrono visibilità sul processo di consegna e facilitano l’analisi di log ed errori.
Flessibilità Copia link
Che si tratti di inviare avvisi o generare report automatici, sendmail e mailx offrono versatilità per diverse esigenze operative.
Prerequisiti Copia link
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.
Configurazione di un server SMTP Copia link
I server SMTP sono indispensabili per l’invio di email. Esistono due categorie principali:
-
Server SMTP esterni
-
Server SMTP locali
Server SMTP esterni Copia link
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.
Esempi Copia link
Gmail
-
Indirizzo: smtp.gmail.com
-
Porta: 587 (TLS) o 465 (SSL)
Outlook
-
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.
Server SMTP locali Copia link
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.
Configurare un server SMTP locale Copia link
1. Installare Postfix Copia link
sudo apt install postfix
2. Modificare la configurazione Copia link
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
3. Creare utenti di posta Copia link
sudo adduser linux
sudo adduser hostman
Crea indirizzi come linux@office.local.
Panoramica su sendmail Copia link
sendmail è uno dei mail transfer agent (MTA) più diffusi in Linux. Funziona con server SMTP per inviare email da sistemi locali o script.
Installazione di sendmail Copia link
Debian/Ubuntu Copia link
sudo apt install sendmail
CentOS/Red Hat Copia link
sudo yum install sendmail
Avvio e abilitazione del servizio Copia link
sudo systemctl start sendmail
sudo systemctl enable sendmail
Testare sendmail Copia link
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
Configurazione del file sendmail.mc Copia link
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
Inviare un’email con sendmail Copia link
1. Creare un file Copia link
nano email.txt
Contenuto:
Subject: Test Email from Hostman
This is a test email sent using sendmail on Linux.
2. Inviare Copia link
sendmail recipient@example.com < email.txt
3. Verificare Copia link
mail
Inviare allegati con sendmail Copia link
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
Panoramica su mailx Copia link
mailx è un'applicazione semplice ed efficace per gestire email via terminale. Fa parte del pacchetto mailutils nella maggior parte delle distribuzioni.
Installare mailx Copia link
Debian/Ubuntu Copia link
sudo apt install mailutils
Red Hat Copia link
sudo yum install mailx
Inviare email con mailx Copia link
echo "This is the body of the email" | mailx -s "Test Email from Mailx" recipient@example.com
Inviare allegati con mailx Copia link
echo "Please find the attached document" | mailx -s "Email with Attachment" -A email.txt recipient@example.com
Conclusione Copia link
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.