Postfix: Endereço do destinatário rejeitado: Usuário desconhecido na tabela de destinatários locais

Postfix: Endereço do destinatário rejeitado: Usuário desconhecido na tabela de destinatários locais

Quando tento enviar um e-mail 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 e-mail para[e-mail protegido]), recebo o seguinte erro no log e o e-mail não é entregue: Recipient address rejected: User unknown in local recipient table. Se eu enviar para um endereço de outro domínio, não tenho problemas. Aqui está 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

Responder1

Sei que esta pergunta é um pouco antiga, então presumo que já tenha sido respondida de forma satisfatória.

Acabei de ter o mesmo problema e demorei um pouco para descobrir o que estava acontecendo. Acho que minha situação era a mesma da pergunta original.

Postfix deve retransmitirtodosmail para outros servidores na Internet, na verdade ele não recebe emails de nenhum domínio. Portanto, qualquer e-mail enviado para example.com deve ser encaminhado para o servidor de e-mail de example.com. A solução, conforme explicado por techieb0y, é remover $mydomain da linha:

mydestination = $mydomain, localhost.$mydomain, localhost

Esta linha informa ao postfix que quaisquer mensagens enviadas para $mydomain devem ser recebidas e armazenadas emesseservidor. Não é isso que eu quero, quero que essas mensagens sejam enviadas para o servidor de e-mail real, por exemplo.com. Depois que percebi isso e removi example.com, o e-mail funcionou como eu esperava. Estou postando isso na esperança de que essa explicação ajude alguém que se depare com essa questão no futuro.

Responder2

O erro é bastante autodescritivo: o nome de usuário do e-mail 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 (pois nenhum está configurado fora do caixa). A decisão de tentar realizar este mapeamento é controlada pela lista de domínios em 'mydestination' (mais quaisquer domínios virtuais). Se esta máquina for de fato o MX principal de um domínio, os usuários que não existem terão mensagens quebradas. Se esta caixa precisar apenas enviar mensagens de saída, basta remover o domínio de destino de mydestination (removendo $mydomain da lista) - ela ainda aceitará mensagens diretamente para[e-mail protegido], mas mensagens para[e-mail protegido]passará pelo processo de pesquisa MX para entrega em outro lugar. Você pode atalho para o processo configurando um mapa de transporte (para domínios individuais) ou configurando um smarthost (para todos os e-mails).

Responder3

Quando você envia uma mensagem para 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 de test para um usuário local em /etc/aliases

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

E você deve estar tudo pronto.

Responder4

ao /etc/postfix/main.cfarquivo adicione line local_recipient_maps =, assim mesmo, com valor vazio (por padrão o valor é ativo e não vazio, por isso é necessário adicionar aquela linha com valor vazio)

informação relacionada