Postfix: endereço do destinatário rejeitado: usuário desconhecido na tabela de destinatários local

25

Quando tento enviar um email no meu servidor postfix para um endereço no mesmo domínio (por exemplo, se o nome do host do servidor for mail.example.com e eu tentar enviar um email para [email protected]), Eu recebo o seguinte erro no log e o email não é entregue: Recipient address rejected: User unknown in local recipient table . Se eu enviar para um endereço em outro domínio, não tenho problemas. Aqui está o meu arquivo /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
    
por Tai Squared 09.09.2010 / 07:45

4 respostas

36

Eu sei que esta pergunta é um pouco antiga, então estou assumindo que já foi respondida satisfatoriamente.

Eu acabei de ter esse mesmo problema, e levei um tempo para descobrir o que estava acontecendo. Acho que minha situação era a mesma da pergunta original.

O postfix deve retransmitir os all e-mails para outros servidores na internet. Na verdade, ele não recebe e-mails para nenhum domínio. Portanto, qualquer email enviado para example.com deve ser encaminhado para o servidor de email por example.com. A solução, conforme explicado b techieb0y, é remover $ mydomain da linha:

mydestination = $mydomain, localhost.$mydomain, localhost

Esta linha diz ao postfix que qualquer mensagem enviada para $ mydomain deve ser recebida e armazenada no servidor . Isso não é o que eu quero, eu quero que essas mensagens sejam enviadas para o servidor de email real por exemplo.com. Depois que percebi isso e removi example.com, o email funcionou como eu esperava. Estou postando isso na chance de que essa explicação ajude alguém que se depara com essa questão no futuro.

    
por 07.01.2012 / 15:09
15

O erro é bastante autodescritivo: o nome de usuário do email de destino (à esquerda do sinal @) não pode ser mapeado para um usuário local no sistema (configurações padrão do postfix) nem para um domínio virtual (como nenhum configurado sai da caixa). A decisão de tentar executar esse mapeamento é controlada pela lista de domínios em 'mydestination' (além de quaisquer domínios virtuais). Se essa máquina for, de fato, um MX principal de um domínio, os usuários que não existirem terão mensagens quebradas. Se esta caixa só precisa enviar mensagens de saída, basta remover o domínio de destino do mydestination (removendo $ mydomain da lista) deve bastar - ele ainda aceitará mensagens diretamente para [email protected], mas mensagens para user @ domain.tld passará pelo processo de procura MX para entrega em outro lugar. Você pode atalho o processo configurando um mapa de transporte (para domínios individuais) ou configurando um host inteligente (para todo o correio).

    
por 10.09.2010 / 04:52
4

Quando você envia uma mensagem para o seu domínio local, o postfix é responsável por verificar se o destinatário existe. Quando você envia um email para qualquer outro domínio, o postfix não tem essa responsabilidade.

Você precisa ter um usuário local chamado test

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

ou, você precisa de um alias do teste para um usuário local em / etc / aliases

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

Um você deve estar pronto.

    
por 09.09.2010 / 10:52
1

Então, estou tendo um problema semelhante e ainda não percebi, mas isso deve levá-lo à direção certa:

link

Veja a seção "Postfix em um cliente nulo" - acho que é isso que você quer. Eu também tentei definir a configuração local_recipient_maps conforme especificado no site do postfix na página: LOCAL_RECIPIENT_README.html

Ambos os links devem fazer o que estamos procurando aqui, mas não consigo fazê-los funcionar. Quando faço a configuração nula do cliente, tentar telnet para enviar um email SMTP de teste não funciona. Eu recebo "telnet: conectar ao endereço 97.74.92.30: Conexão recusada". Ao definir o mapa de destinatário local, a pesquisa no comando RCPT TO: não apresenta uma mensagem de erro como era antes, mas ao enviar o email (parece normal), nenhum email é realmente enviado e há um erro no maillog:

"550-Mailbox unknown. Ou não há caixa de correio associada a este nome 550 ou você não tem autorização para vê-lo. 550 5.1.1 Usuário desconhecido"

Deixe-me saber se você tem mais sorte.

    
por 19.10.2010 / 17:42