Cosa fa questo modulo #
Molte cose sul server ti avvisano via email: un certificato che scade, un disco che si riempie, il report di un'attività notturna. Ma un server appena installato non sa inviare quella posta — o ci prova direttamente e finisce nella cartella spam, quando non viene del tutto rifiutata.
Il modulo smtp risolve questo configurando la posta in uscita dell'host contro uno smarthost (un relay effettivamente autorizzato a consegnare: Amazon SES, un server di posta aziendale, il tuo provider…). Regola postfix affinché inoltri tutta la posta di sistema a quello smarthost, salva la password in modo sicuro, riscrive il mittente rendendolo valido e ti permette di provare l'invio per confermare che arriva — riportandoti l'errore reale se qualcosa non va.
Tieni a portata di mano i dati dello smarthost: host, porta (di solito 587) e le credenziali se richiede autenticazione. La password non si passa sulla riga di comando: viene letta da stdin o dall'archivio di segreti, così non resta nella cronologia.
Attività comuni #
Scegli cosa vuoi fare. Ogni ricetta porta il comando già scritto — cambia solo lo smarthost e il mittente con i tuoi, e premi Copia.
1
Configurare il relay di posta
Punta il server al tuo smarthost così la posta esce davvero.
Connettiti via SSH al tuo server con l'utente ubuntu.
Lancia il comando con i dati del tuo smarthost. La password viene chiesta da stdin, così non resta nella cronologia:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]Se il tuo smarthost non richiede autenticazione, ometti --user. Per una porta o una modalità TLS diverse, aggiungi --port o --no-tls.
[email protected]. Prosegui con la ricetta Inviare un'email di prova.2
Inviare un'email di prova
Conferma che un messaggio esce e arriva prima di affidarti agli avvisi.
Invia un'email di prova a un indirizzo dove puoi verificarla:
$ sudo imaxe smtp test --to [email protected]Se ometti --to, l'invio va al mittente configurato. Controlla la tua casella (e la cartella spam) per confermare la consegna.
3
Vedere lo stato della posta
Verifica a colpo d'occhio se il relay è configurato e attivo.
Un riepilogo del relay, dello smarthost, del mittente e dello stato dell'MTA:
$ sudo imaxe smtp statusTi serve per uno script o un pannello? Aggiungi --json per un output leggibile dalla macchina:
$ sudo imaxe smtp status --json4
Vedere la configurazione effettiva
Consulta le impostazioni attive senza esporre la password.
Mostra host, porta, utente, mittente e modalità TLS realmente in uso (la password non viene mai stampata):
$ sudo imaxe smtp show5
Rimuovere il relay
Disabilita l'inoltro e riporta postfix al suo stato precedente.
Disabilita il relay di posta in uscita e ripristina la configurazione base di postfix:
$ sudo imaxe smtp removeconfigure.Il caso più comune è che il mittente non sia verificato sullo smarthost (SES richiede di verificare il dominio o l'indirizzo di --from), oppure che le credenziali siano errate. Lancia imaxe smtp test: ti restituisce l'errore reale dell'MTA per sapere esattamente cosa regolare.
Sinossi #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]Tutti i sottocomandi richiedono privilegi di root (usa sudo) perché toccano la configurazione di postfix, scrivono in /etc/imaxe/ e ricaricano servizi di sistema. La password dello smarthost non si passa mai come flag: viene letta da stdin o dall'archivio di segreti. Aggiungi --json a status o show per ottenere un output leggibile dalla macchina, adatto allo scripting.
Sottocomandi #
| Sottocomando | Cosa fa | Flag rilevanti |
|---|---|---|
| configure | Configura il relay di posta in uscita contro uno smarthost. La password viene letta da secrets/stdin. | --host, --port, --user, --from, --tls / --no-tls |
| test | Invia un'email di prova e riporta l'errore reale dell'MTA se fallisce. | --to |
| status | Stato: relay configurato, smarthost, mittente e MTA attivo. | --json |
| show | Mostra la configurazione effettiva, senza esporre la password. | --json |
| remove | Disabilita il relay e ripristina postfix. | — |
Argomenti e flag #
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| --host obbl. | string | — | Smarthost SMTP a cui inoltrare la posta (ad es. email-smtp.eu-west-1.amazonaws.com). Obbligatorio in configure. |
| --port | int | 587 | Porta SMTP dello smarthost. |
| --user | string | — | Utente SMTP per l'autenticazione. Se omesso, il relay viene configurato senza autenticazione. |
| --from | string | — | Riscrive il mittente di tutti i messaggi (sender_canonical). Utile per usare un indirizzo verificato sullo smarthost. |
| --tls / --no-tls | bool | --tls | Forza il TLS nella connessione con lo smarthost (predefinito). --no-tls lo disattiva. |
| --to | string | mittente | In test: destinatario dell'email di prova. Per impostazione predefinita, il mittente configurato. |
| --json | bool | false | In status/show, emette il risultato come JSON su stdout. |
Non esiste un'opzione --password. La credenziale viene letta da stdin durante configure o dall'archivio di segreti (password_secret, per impostazione predefinita smtp), così da non comparire mai nella cronologia né nella tabella dei processi.
File e percorsi #
| Percorso | Contenuto |
|---|---|
| /etc/imaxe/smtp.yml | Configurazione del modulo: host, porta, TLS, utente, mittente e riferimento al segreto della password. |
| /etc/postfix/main.cf | Configurazione di postfix che il modulo regola per l'inoltro (relayhost, canonical del mittente…). |
| /var/log/mail.log | Registro di postfix con ogni tentativo di consegna e il motivo dei rifiuti. |
Esempio di smtp.yml:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpCodici di uscita e log #
Ogni esecuzione restituisce un codice che puoi verificare con echo $? — utile per concatenare negli script:
test, l'email è stata accettata per la consegna.Segui il log della posta in tempo reale mentre analizzi un invio:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]Risoluzione dei problemi #
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Esce AUTH (codice 4) | Utente o password dello smarthost errati. | Controlla --user e rilancia configure reinserendo la password da stdin. |
| Esce SEND (codice 5), mittente rifiutato | L'indirizzo di --from non è verificato sullo smarthost (tipico in SES). | Verifica il dominio o l'indirizzo presso il provider e riprova il test. |
| Esce CONFIG (codice 3) | Il relay non è ancora configurato su questo host. | Lancia imaxe smtp configure con i dati dello smarthost. |
| La posta esce ma arriva nello spam | Manca l'allineamento di SPF/DKIM sul dominio del mittente. | Configura i record del provider di posta per il dominio di --from. |
Bloccato con il modulo Posta?
Scrivici allegando l'output di «imaxe <module> status --json» e ti rispondiamo in fretta.