Postfix: Recipient address rejected: User unknown in local recipient table

emailemail-serverpostfix

When I try to send an email on my postfix server to an address on the same domain (for example, if the server hostname is mail.example.com and I try to send an email to test@example.com), I get the following error in the log and the email is not delivered: Recipient address rejected: User unknown in local recipient table. If I send to an address on another domain, I don't have any problems. Here is my /etc/postfix/main.cf file:

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

Best Answer

I know this question is a little old, so I'm assuming it's been answered satisfactorily already.

I just had this same issue, and it took me a while to figure out what was going on. I think my situation was the same as the original question.

Postfix should relay all mail to other servers on the internet, it does not actually receive mail for any domains. So any mail sent to example.com should be forwarded to the mail server for example.com. The solution, as explained b techieb0y, is to remove $mydomain from the line:

mydestination = $mydomain, localhost.$mydomain, localhost

This line tells postfix that any messages sent to $mydomain are to be received and stored on this server. That's not what I want, I want those messages to be sent to the actual mailserver for example.com. Once I realised this, and removed example.com, mail worked as I expected. I'm posting this on the off chance that this explanation helps somebody else who stumbles upon this question in the future.

Related Topic