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


30

Cuando trato de enviar un correo electrónico en mi servidor de 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 test@example.com), recibo el no se entrega error en el registro y el correo electrónico siguiente: Recipient address rejected: User unknown in local recipient table. Si envío a una dirección en 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

Me he encontrado con esto antes cuando los servidores no tienen los nombres de host correctos establecidos por cualquier razón. ¿Tu dominio está configurado mail.example.comcomo tu registro MX? ¿Es este servidor realmente mail.example.com?
Bert

Respuestas:


42

Sé que esta pregunta es un poco vieja, así que supongo que ya se ha respondido satisfactoriamente.

Acabo de tener este mismo problema, y ​​me llevó un tiempo descubrir qué estaba pasando. Creo que mi situación era la misma que la pregunta original.

Postfix debe retransmitir todo el correo a otros servidores en Internet, en realidad no recibe correo para ningún dominio. Por lo tanto, cualquier correo enviado a example.com debe reenviarse al servidor de correo de example.com. La solución, como se explica b 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 $ mydomain debe ser recibido y almacenado en este servidor. 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 con la posibilidad de que esta explicación ayude a alguien más que tropiece con esta pregunta en el futuro.


18

El error es bastante descriptivo: 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 de postfix predeterminada), ni a un dominio virtual (ya que ninguno está configurado fuera del caja). La decisión de intentar realizar esta asignación está controlada por la lista de dominios en 'mydestination' (más cualquier dominio virtual). Si esta máquina es de hecho el MX primario de un dominio, 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: aún aceptará mensajes directamente para user@hostname.domain.tld, pero mensajes para user @ domain.tld pasará por el proceso de búsqueda MX para la entrega en otro lugar.


1
me salvaste el día, me estaba volviendo loco ... ¿por qué tengo dos usuarios para mí, tstaerk y thorsten;)
Thorsten Staerk

5

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 listo.


¿Hay alguna forma de omitir esta verificación para que no tenga que crear un usuario para cada persona a la que enviaría un correo electrónico? No quiero usar este servidor como nuestro servidor de correo primario, solo para enviar correos electrónicos salientes desde una aplicación cuando se producen errores. Preferiría no tener que actualizar el servidor cada vez que quiera agregar un nuevo destinatario para el correo electrónico de la aplicación.
Tai Squared

Supongamos que desea enviar un correo electrónico a 'administrador@dominioz.com', lo que debe hacer es asegurarse de que su postfix local NO sea responsable de 'dominioz.com', de lo contrario, intentará validar al usuario localmente. Por lo tanto, configure la directiva 'mydomain' en algo diferente, como 'mydomain = local.server' y postfix enviará su correo electrónico al servidor responsable de 'domainz.com'
Julien Vehent

1

Así que tengo un problema similar y aún no lo he resuelto, pero esto debería llevarlo en la dirección correcta:

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

Mire la sección "Postfix en un cliente nulo". Creo que eso es lo que quiere. También intenté establecer la configuración local_recipient_maps como se especifica en el sitio web de postfix en la página: LOCAL_RECIPIENT_README.html

Ambos enlaces deberían hacer lo que buscamos aquí, pero no puedo hacer que funcionen. Cuando realizo la configuración completa del cliente nulo, no intento intentar telnet para enviar un correo electrónico SMTP de prueba. Me aparece "telnet: conectar a la dirección 97.74.92.30: conexión rechazada". Al configurar el mapa del destinatario local, la búsqueda en el comando RCPT TO: no muestra un mensaje de error como antes, pero al enviar el correo electrónico (parece normal), no se envía ningún correo electrónico y hay un error en el registro de correo:

"Buzón 550 desconocido. O no hay un buzón asociado con este nombre 550 o no tiene autorización para verlo. 550 5.1.1 Usuario desconocido"

Avísame si tienes mejor suerte.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.