// come risolvere
Postfix "553 5.7.1 Sender address rejected: not owned by user": come risolvere
Postfix rifiuta il tuo indirizzo From con 553 5.7.1 not owned by user o not logged in? Correggi smtpd_sender_login_maps o invia con il login giusto.
Cosa significa
Il tuo server Postfix verifica che la persona che ha effettuato l'accesso sia autorizzata a inviare con l'indirizzo mittente che usa. Quando non lo è, rifiuta il messaggio:
553 5.7.1 <info@yourdomain.com>: Sender address rejected: not owned by user john@yourdomain.com
Un messaggio simile compare quando qualcuno usa uno dei tuoi indirizzi senza aver effettuato alcun accesso:
553 5.7.1 <info@yourdomain.com>: Sender address rejected: not logged in
È una protezione, non un bug: impedisce a un utente (o a una password rubata) di inviare spacciandosi per un'altra persona. La soluzione è indicare a Postfix chi può usare quale indirizzo, oppure inviare con l'account giusto.
Perché succede
Il controllo deriva dalla restrizione reject_sender_login_mismatch (o dalle sue varianti reject_authenticated_sender_login_mismatch e reject_known_sender_login_mismatch). Confronta due cose:
- il mittente della busta (l'indirizzo
MAIL FROMfornito dal programma di posta, non sempre l'intestazione From visibile), e - il nome di login usato per l'autenticazione SMTP.
Postfix cerca il mittente nella tabella indicata da smtpd_sender_login_maps. Se il login non è elencato come proprietario, rifiuta. Situazioni tipiche:
- Un utente invia da un indirizzo condiviso o da un alias (
info@,sales@) che non è associato al suo login. - Un sito web, una stampante o uno script accede con un account ma invia con un altro indirizzo.
- Il nome di login è
johnma la tabella indicajohn@yourdomain.com(o viceversa). - La tabella è stata modificata ma
postmapnon è stato eseguito, quindi Postfix legge ancora la vecchia versione. - Un'app imposta un mittente della busta (indirizzo di rimbalzo) diverso dall'indirizzo From.
Come verificare
- Leggi il log di posta per trovare il mittente e il login esatti:
grep "not owned by user" /var/log/mail.log | tail
- Guarda le impostazioni attive:
postconf smtpd_sender_login_maps smtpd_sender_restrictions postconf -M submission/inet
Il secondo comando mostra le sostituzioni-odel servizio submission (porta 587) inmaster.cf, dove questa restrizione è spesso impostata. - Interroga direttamente la tabella:
postmap -q info@yourdomain.com hash:/etc/postfix/sender_login
Mostra i login autorizzati per quell'indirizzo, oppure niente. - Riproduci il problema con swaks:
swaks --server mail.yourdomain.com:587 --tls \ --auth LOGIN --auth-user john@yourdomain.com \ --from info@yourdomain.com --to you@example.com
Come risolvere
Autorizza il login a usare l'indirizzo
Modifica la tabella dei login mittente, un mittente per riga, seguito dai login autorizzati separati da virgole:
# /etc/postfix/sender_login john@yourdomain.com john@yourdomain.com info@yourdomain.com john@yourdomain.com, mary@yourdomain.com @yourdomain.com admin@yourdomain.com
L'ultima riga permette ad admin@yourdomain.com di inviare con qualsiasi indirizzo del dominio; usala con cautela. Poi ricostruisci la tabella e ricarica:
postmap /etc/postfix/sender_login systemctl reload postfix
Assicurati che main.cf punti alla tabella:
smtpd_sender_login_maps = hash:/etc/postfix/sender_login
Se i tuoi utenti sono in un database (MySQL, PostgreSQL, LDAP), la tabella è una query; aggiungi lì il permesso per l'alias. I pannelli di controllo e le suite di server di posta di solito lo presentano come permesso "invia come" (send as) o alias per ogni casella.
Oppure accedi con l'account giusto
Per un sito web o un dispositivo, la soluzione più semplice è spesso accedere con l'account proprietario dell'indirizzo, oppure creare una casella per l'indirizzo da cui invia.
Correggi il mittente della busta nelle app
Se il From visibile è corretto ma il log mostra un altro mittente, l'app imposta un mittente della busta diverso. Impostalo su un indirizzo di proprietà del login (per PHPMailer, $mail->Sender; per nodemailer, l'opzione envelope). Vedi Return-Path, mittente della busta e From.
Non limitarti a rimuovere la restrizione
Rimuovere reject_sender_login_mismatch fa sparire l'errore ma permette a qualsiasi utente di inviare come chiunque. Inoltre non usare l'indirizzo dei visitatori come mittente nei moduli di contatto (vedi email del modulo di contatto inviate "da" il visitatore). Se invece l'errore è "Relay access denied", vedi 554 5.7.1 Relay access denied.
Verifica che sia risolto
Esegui lo stesso comando swaks: deve terminare con 250 2.0.0 Ok: queued. Poi invia dalla vera app o dal client di posta all'indirizzo unico indicato nella home page di Delivmail e verifica nel report che SPF, DKIM e DMARC passino per l'indirizzo mittente. Infine reinvia il messaggio che era stato rifiutato.
Verifica che sia risolto
Una modifica DNS può richiedere da pochi minuti a qualche ora. Poi invia una nuova email di test o scansiona di nuovo il tuo dominio.
Guide correlate
- Errore Gmail "550 5.7.26": email non autenticataGmail ha rifiutato la tua email perché non ha potuto confermare che arriva dal tuo dominio. SPF, DKIM o DMARC manca o fallisce. Ecco come risolvere.
- Errore "550 5.7.1": messaggio rifiutato o bloccato da una policyUn bounce 5.7.1 significa che il server di destinazione ha rifiutato la tua email di proposito. Impara a leggere i messaggi di errore, trovare il vero motivo e risolverlo.
- Tasso di bounce alto: pulisci la tua mailing listInviare a indirizzi che non esistono più danneggia in fretta la tua reputazione. Scopri la differenza tra hard bounce e soft bounce e rimuovi gli indirizzi non validi dopo ogni invio.
- Email in ritardo: greylisting ed errori temporanei 4xxAlcuni server rispondono "riprova più tardi" di proposito. Un normale server di posta riprova e l'email arriva con qualche minuto di ritardo. Ecco come distinguere i ritardi normali dai veri problemi.
- Gestire il tuo server di posta: la checklist della deliverabilityUn server Postfix self-hosted può consegnare bene, ma solo se ogni base è a posto: reverse DNS, SPF, DKIM, DMARC, TLS e nessun open relay.