Postfix: dirección del destinatario rechazada: usuario desconocido en la tabla de destinatarios local

Postfix: dirección del destinatario rechazada: usuario desconocido en la tabla de destinatarios local

Cuando intento enviar un correo electrónico en mi servidor Postfix a una dirección en el mismo dominio (por ejemplo, si el nombre de host del servidor es mail.example.com e intento enviar un correo electrónico a[correo electrónico protegido]), aparece el siguiente error en el registro y el correo electrónico no se entrega: Recipient address rejected: User unknown in local recipient table. Si envío a una dirección de otro dominio, no tengo ningún problema. Aquí está mi archivo /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

Respuesta1

Sé que esta pregunta es un poco antigua, así que supongo que ya ha sido respondida satisfactoriamente.

Tuve el mismo problema y me tomó un tiempo descubrir qué estaba pasando. Creo que mi situación era la misma que la pregunta original.

Postfix debe transmitirtodoenvía correo a otros servidores de Internet, en realidad no recibe correo de ningún dominio. Por lo tanto, cualquier correo enviado a ejemplo.com debe reenviarse al servidor de correo de ejemplo.com. La solución, como se explica en techieb0y, es eliminar $mydomain de la línea:

mydestination = $mydomain, localhost.$mydomain, localhost

Esta línea le dice a postfix que cualquier mensaje enviado a $midominio debe recibirse y almacenarse enesteservidor. Eso no es lo que quiero, quiero que esos mensajes se envíen al servidor de correo real, por ejemplo.com. Una vez que me di cuenta de esto y eliminé example.com, el correo funcionó como esperaba. Estoy publicando esto por si acaso esta explicación ayuda a alguien que se encuentre con esta pregunta en el futuro.

Respuesta2

El error es bastante autodescriptivo: el nombre de usuario del correo electrónico de destino (a la izquierda del signo @) no se puede asignar a un usuario local en el sistema (configuración postfix predeterminada), ni a un dominio virtual (ya que ninguno está configurado fuera del caja). La decisión de intentar realizar este mapeo está controlada por la lista de dominios en 'midestino' (más cualquier dominio virtual). Si esta máquina es en realidad el MX principal de un dominio, entonces los usuarios que no existen tienen correo roto. Si este cuadro solo necesita enviar mensajes salientes, simplemente eliminar el dominio de destino de mydestination (eliminando $mydomain de la lista) debería ser suficiente; seguirá aceptando mensajes directamente para[correo electrónico protegido], pero mensajes para[correo electrónico protegido]Pasará por el proceso de búsqueda de MX para su entrega en otro lugar. Puede atajar el proceso configurando un mapa de transporte (para dominios individuales) o configurando un host inteligente (para todo el correo).

Respuesta3

Cuando envía un mensaje a su dominio local, postfix es responsable de verificar que el destinatario existe. Cuando envía un correo electrónico a cualquier otro dominio, postfix no tiene dicha responsabilidad.

Necesitas tener un usuario local llamado prueba

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

o necesita un alias de prueba para un usuario local en /etc/aliases

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

Y deberías estar todo listo.

Respuesta4

al /etc/postfix/main.cfarchivo agregue una línea local_recipient_maps =, justo así, con un valor vacío (por defecto el valor está activo y no está vacío, es por eso que es necesario agregar esa línea con una vacía)

información relacionada