Question

Postfix stuck in an unstoppable email loop to itself?

I have an issue I can’t figure out, and that is why postfix is constantly emailing itself, like it is stuck in an unstoppable mail loop?

I can see from the email log that the email is bouncing, because of an unknown user:

Jan 27 02:35:17 mydomain postfix/local.... to=<inquiry@mydomain.com>, relay=local, delay=0.01, delays=0/0/0/0, dsn=5.1.1, status=bounced (unknown user: "inquiry")

But the email exist and the email is used for sending out emails via a contact form on the website, and the email is hosted at Office 365.

I’ve figured out that there might be an issue with the website domain name and the email domain name being the same (externally set up at Office 365), so is there anyone who has experienced the same issue and how to correct it?

Is there anything in my /etc/postfix/main.cf file that should be different to prevent this?

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
relayhost = [smtp.office365.com]:587
myhostname = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
Show comments

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

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 web form, then you need to setup the following in your postfix configuration.

myhostname = localhost
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 myself@mydomain.com.

Please also male sure that $mydomain is equal to localdomain and it can be checked with postconf -d | grep mydomain, otherwise you can set the variable with mydomain = localdomain.

@richardp

When it comes to e-mail, there’s two files localdomains and remotedomains (both in /etc).

When an e-mail is sent out, these two files are checked. If the domain is in localdomains, the mail gets routed locally – if the domain is in remotedomains, the mail is routed off the server.

Since you’re using an external mail server, I would remove your domain from the local to the remote file. You shouldn’t need to restart any services as these files are checked each time and e-mail is sent.

I figured out that if the recipient is an email with the same domain name inquiry@mydomain.com as the website itself www.mydomain.com, postfix starts to constantly emailing itself and it get stuck in an unstoppable email loop.

So to prevent this, how can I set up postfix to always use "postfix/smtp" instead of "postfix/local", which clearly is causing the email bounce loop??

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.