Come appare il messaggio
550 5.7.1 <info@beispiel.de>: Relay access deniedCause frequenti
- Il client di posta o l'applicazione invia senza SMTP AUTH.
- Invio sulla porta 25 invece che sulla 587 (o 465) con login.
- Il dominio destinatario manca in
virtual_mailbox_domains,mydestinationorelay_domains. - L'IP del server applicativo non è in
mynetworks. - Il server di destinazione (es. connettore di ricezione Exchange) rifiuta mittente o IP per policy.
Verifica
- Mostra le impostazioni di relay di Postfix
postconf -n | grep -E 'mynetworks|relay_domains|smtpd_relay_restrictions|virtual_mailbox_domains' - Trova nei log i tentativi rifiutati con l'IP del client
journalctl -u postfix --since '1 hour ago' | grep 'Relay access denied' - Prova l'invio autenticato sulla 587 (chiede la password)
swaks --to test@example.com --from info@example.com --server mail.example.com --port 587 --tls --auth LOGIN --auth-user info@example.com - Verifica che le porte di invio siano in ascolto
ss -ltnp | grep -E ':(25|465|587) '
Soluzione
- Attiva SMTP AUTH nel client e usa la porta 587 con STARTTLS.
- Aggiungi i tuoi domini a
virtual_mailbox_domainsorelay_domains, poipostfix reload. - Imposta regole di relay pulite:
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination. - Inserisci in
mynetworkssolo singoli server interni come /32, mai reti intere. - Se il rifiuto arriva da un server esterno, leggi tutto il testo del bounce e chiarisci la policy con l'admin del destinatario.
Domande frequenti
550 5.7.1 significa sempre relay access denied?
No. 5.7.1 è un codice di policy generico, usato anche da Microsoft 365, filtri antispam e restrizioni sui mittenti. Conta il testo dopo il codice.
Posso risolvere allargando mynetworks?
Solo per singoli host fidati. Una voce come 0.0.0.0/0 rende il server un open relay, che finisce in blocklist nel giro di poche ore.