«Non arriva nessuna posta» ha due cause molto diverse: il server non l'ha mai spedita, oppure l'ha spedita e chi riceve l'ha rifiutata. Il registro della posta risponde in una riga, e tutto il resto discende da quella risposta.
tail -50 /var/log/mail.log
- status=sent — è partita. Il problema è la consegna, non l'invio: vedi l'articolo sulla posta che finisce nell'indesiderata.
- status=bounced — chi riceve ha rifiutato, e la riga dice perché.
- Niente del tutto — l'applicazione non ha mai consegnato nulla.
Quando al registro non arriva nulla
La funzione mail() di PHP restituisce true quando il programma di posta locale ha ACCETTATO il messaggio, che non è la stessa cosa che spedirlo. Se non c'è alcun programma di posta installato restituisce false, e quasi tutte le applicazioni lo ignorano.
php -r 'var_dump(mail("you@example.com","test","body"));'
which sendmail
Usa SMTP invece di mail()
Un SMTP autenticato verso la tua casella è più affidabile e viene consegnato molto meglio: il messaggio è firmato e proviene da un server che ha una reputazione, non da un processo web.
Host: mail.yourdomain.com
Port: 465 (SSL) or 587 (TLS)
User: the full address
From: the SAME address
Prova il percorso, non il modulo
swaks --to you@example.com --from noreply@yourdomain.com --server mail.yourdomain.com:587 -tls -au noreply@yourdomain.com
Questo prova SMTP direttamente e stampa l'intera conversazione. Se funziona e il sito continua a fallire, il guasto sta nelle impostazioni dell'applicazione, non nel server di posta.
mailq. Un messaggio fermo in coda è stato accettato e non ancora consegnato, e la coda dice il motivo per cui aspetta.
