Postfix: indirizzo del destinatario rifiutato: utente sconosciuto nella tabella del destinatario locale


30

Quando provo a inviare un'e-mail sul mio server Postfix a un indirizzo sullo stesso dominio (ad esempio, se il nome host del server è mail.example.com e provo a inviare un'e-mail a test@example.com), ottengo il seguente errore nel registro e l'e-mail non viene recapitato: Recipient address rejected: User unknown in local recipient table. Se invio a un indirizzo su un altro dominio, non ho problemi. Ecco il mio file /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $mydomain, localhost.$mydomain, localhost
relayhost =
#fake IP address
mynetworks = 127.0.0.0/8 100.837.191.223
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Mi sono imbattuto in questo prima quando i server non hanno i nomi host corretti impostati per qualsiasi motivo. Il tuo dominio è configurato mail.example.comcome record MX? Questo server è davvero mail.example.com?
Bert

Risposte:


42

So che questa domanda è un po 'vecchia, quindi presumo che abbia già ricevuto una risposta soddisfacente.

Ho avuto lo stesso problema e mi ci è voluto un po 'per capire cosa stesse succedendo. Penso che la mia situazione fosse la stessa della domanda originale.

Postfix dovrebbe inoltrare tutta la posta ad altri server su Internet, in realtà non riceve posta per nessun dominio. Pertanto, qualsiasi messaggio inviato a example.com deve essere inoltrato al server di posta per example.com. La soluzione, come spiegato in techieb0y, è rimuovere $ mydomain dalla riga:

mydestination = $mydomain, localhost.$mydomain, localhost

Questa riga dice a postfix che tutti i messaggi inviati a $ mydomain devono essere ricevuti e memorizzati su questo server. Non è quello che voglio, voglio che quei messaggi vengano inviati al mailserver reale per esempio.com. Una volta realizzato questo, e rimosso example.com, la posta funzionava come mi aspettavo. Sto pubblicando questo nel caso in cui questa spiegazione aiuti qualcun altro che si imbatte in questa domanda in futuro.


18

L'errore è piuttosto auto-descrittivo: il nome utente e-mail di destinazione (a sinistra del segno @) non può essere mappato a un utente locale sul sistema (impostazioni postfix predefinite), né a un dominio virtuale (poiché nessuno è configurato fuori dal scatola). La decisione di provare a eseguire questa mappatura è controllata dall'elenco dei domini in "mydestination" (più eventuali domini virtuali). Se questa macchina è in effetti il ​​MX principale di un dominio, gli utenti che non esistono hanno la posta rotta. Se questa casella deve solo inviare messaggi in uscita, è sufficiente rimuovere semplicemente il dominio di destinazione da mydestination (rimuovendo $ mydomain dall'elenco): accetterà comunque i messaggi direttamente per user@hostname.domain.tld, ma i messaggi per l'utente @ domain.tld eseguirà il processo di ricerca MX per la consegna altrove.


1
mi hai salvato la giornata, stavo diventando pazzo ... perché ho due utenti per me, tstaerk e thorsten;)
Thorsten Staerk

5

Quando si invia un messaggio al dominio locale, postfix è responsabile del controllo dell'esistenza del destinatario. Quando invii un'e-mail a qualsiasi altro dominio, postfix non ha tale responsabilità.

È necessario disporre di un utente locale chiamato test

useradd -s /bin/bash -d /home/test -U test

oppure, è necessario un alias dal test a un utente locale in / etc / aliases

echo "test: root" >> /etc/aliases
postalias /etc/aliases

E dovresti essere pronto.


Esiste un modo per aggirare questo controllo in modo da non dover creare un utente per ogni persona a cui invierò un'email? Non voglio usare questo server come nostro server di posta principale, solo per inviare e-mail in uscita da un'applicazione quando si verificano errori. Preferirei non dover aggiornare il server ogni volta che voglio aggiungere un nuovo destinatario per l'e-mail dell'applicazione.
Tai Squared,

Supponiamo che tu voglia inviare e-mail a "administrator@domainz.com", ciò che devi fare è assicurarti che il tuo postfix locale NON sia responsabile di "domainz.com", altrimenti proverà a convalidare l'utente localmente. Quindi, imposta la direttiva "mydomain" su qualcosa di diverso, come "mydomain = local.server" e postfix invierà la tua email al server responsabile di "domainz.com"
Julien Vehent,

1

Quindi sto avendo un problema simile e non l'ho ancora capito, ma questo dovrebbe spostarti nella giusta direzione:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html

Guarda la sezione "Postfix su un client null" - Penso che sia quello che vuoi. Ho anche provato a impostare local_recipient_maps come specificato sul sito web di postfix nella pagina: LOCAL_RECIPIENT_README.html

Entrambi i link dovrebbero fare quello che stiamo cercando qui, ma non riesco a farli funzionare. Quando eseguo la configurazione completa del client null, il tentativo di telnet per inviare un messaggio di posta elettronica SMTP di prova non funziona. Ottengo "telnet: connettiti all'indirizzo 97.74.92.30: connessione rifiutata". Quando si imposta la mappa del destinatario locale, la ricerca nel comando RCPT TO: non fornisce un messaggio di errore come era prima, ma quando si invia l'e-mail (sembra normale), non viene inviata alcuna e-mail e si verifica un errore nel maillog:

"550-Mailbox sconosciuta. O non esiste alcuna cassetta postale associata a questo 550-name o non si dispone dell'autorizzazione per vederla. 550 5.1.1 Utente sconosciuto"

Fammi sapere se hai fortuna.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.