Can’t Send Mail to Own Domain. Postfix: status=bounced (unknown user: “user”)

Last updated on | 14 replies

Having problems sending email to your own domain? You may need to change your postfix configuration.

I was experiencing a problem sending mail to an address at my own domain. I wanted my PHP app to send notification emails to [email protected] but they kept bouncing with “status=bounced (unknown user: “user”)”.

Accessing the log:

sudo tail /var/log/mail.log -n 200

This will return the last 200 lines of the log.

Log output:

/var/log/mail.log
May 24 12:28:04 example postfix/pickup[30776]: DC48FC0927: uid=33 from=
May 24 12:28:04 example postfix/cleanup[32746]: DC48FC0927: message-id=<[email protected]>
May 24 12:28:04 example postfix/qmgr[1711]: DC48FC0927: from=<[email protected]>, size=9136, nrcpt=1 (queue active)
May 24 12:28:04 example postfix/local[32748]: DC48FC0927: to=<[email protected]>, relay=local, delay=0.06, delays=0.03/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "user")
May 24 12:28:04 example postfix/cleanup[32746]: E7413C0928: message-id=<[email protected]>
May 24 12:28:04 example postfix/qmgr[1711]: E7413C0928: from=<>, size=10993, nrcpt=1 (queue active)
May 24 12:28:04 example postfix/bounce[32749]: DC48FC0927: sender non-delivery notification: E7413C0928
May 24 12:28:04 example postfix/qmgr[1711]: DC48FC0927: removed
May 24 12:28:04 example postfix/local[32748]: E7413C0928: to=<[email protected]>, relay=local, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
May 24 12:28:04 example postfix/qmgr[1711]: E7413C0928: removed
May 24 12:28:04 example postfix/pickup[30776]: EBC48C0927: uid=33 from=
May 24 12:28:04 example postfix/cleanup[32746]: EBC48C0927: message-id=<[email protected]>
May 24 12:28:04 example postfix/qmgr[1711]: EBC48C0927: from=<[email protected]>, size=8898, nrcpt=1 (queue active)

I’m not sure if others have experienced this issue, but if your email server is hosted on another domain and you use postfix and SMTP to send local emails from a PHP web form for example, then you need to setup the following in your postfix configuration.

Open your Postfix config file.

sudo nano /etc/postfix/main.cf

Scroll down and look for the entries for myhostname and mydestination. Change them so they look like this.

/etc/postfix/main.cf
. . .
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
. . .

This forces postfix to always use the external email server, even in a case the email recipient is under your local domain name, like [email protected].

Lastly, let’s restart Postfix.

sudo systemctl restart postfix

You can send a test email to see if it works.

echo "Test Email message body" | mail -s "Email test subject" [email protected]

Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.

14 replies

Leave a reply

Your email address will not be published. Required fields are marked *

  1. Thanks, this seems to have worked for me partially. Microsoft 365 shows it as a junk e-mail, but it least got sent which is better than not sending at all!

  2. Thanks for making it simple! I went through very complicated configurations and couldn’t see what was wrong with mine until I saw this one.

  3. If I’m right this happends only when hostname is same as domain. And it should not be because then FQDN breaks. So, if your domain is example.com and you want get something informatic in the beginning of SSH-commandline you should use somethinglike example as hostname.

  4. Like every other suggestion I can find. it doesnt work. The only way I can find to send to my own domain or relay to my own domain is to change the domain name in the hosts file. Then everything works