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 [email protected]), 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
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:
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.
The error is pretty self-descriptive: the target email username (left of the @ sign) can't be mapped to a local user on the system (default postfix settings), nor to a virtual domain (as none are configured out of the box). The decision to try and perform this mapping is controlled by the list of domains in 'mydestination' (plus any virtual domains). If this machine is in fact a domain's primary MX, then users that don't exist have broken mail. If this box only needs to send outgoing messages, simply removing the target domain from mydestination (by removing $mydomain from the list) should suffice -- it will still accept messages directly for [email protected], but messages for [email protected] will go through the MX lookup process for delivery elsewhere. You can shortcut the process by setting up a transport map (for individual domains), or for configuring a smarthost (for all mail).
When you send a message to your local domain, postfix is responsible for checking that the recipient exists. When you send an email to any other domain, postfix has no such responsibility.
You either need to have a local user called test
or, you need an alias from test to a local user in /etc/aliases
An you should be all set.
I had this error when sending e-mails to an alias. Postfix is using /etc/aliases.db which is generated from /etc/aliases by running the following command. This resolved the error:
So I'm having a similar problem and haven't quite figured it out yet, but this should move you in the right direction:
http://www.postfix.org/STANDARD_CONFIGURATION_README.html
Look at the "Postfix on a null client" section - I think that's what you want. I also tried setting local_recipient_maps setting as specified on postfix's website at the page: LOCAL_RECIPIENT_README.html
Both links should do what we're after here, but I can't get them to work. When I do the full null client setup, attempting to telnet in order to send a test SMTP email does not work. I get "telnet: connect to address 97.74.92.30: Connection refused". When setting local recipient map, the lookup in the RCPT TO: command does not give an error message like it was before, but upon sending the email (looks normal), no email is actually sent, and there's an error in the maillog:
"550-Mailbox unknown. Either there is no mailbox associated with this 550-name or you do not have authorization to see it. 550 5.1.1 User unknown"
Let me know if you have better luck.
to the
/etc/postfix/main.cf
file add linelocal_recipient_maps =
, right so, with empty value (by default the value is active and non-empty, that is why it is needed to add that line with empty one)