The Linux Page

Postfix says it does not allow relaying?!

As we are upgrading our server to jump from version 12.04 to 13.04, we encounter a few problems.

Two with Postfix, first the Postgrey port has changed. It was 60000 before, now it is 10023. Don't ask me... Anyway, that was the easy one.

The other problem was a relay error. I could send emails all I wanted, but not my partner who does not show his server as part of our Made to Order Software Corp. network. Relay is why a computer allows emails from server X to be sent to server Y through server Z. You are server Z, that's the relay.

The fact is that if you can log in your account on our server (assuming you paid us a grant or two...) then you should be able to send email. By he could not do it as the server was preventing him from doing it.

Why? Because one option changed. The postfix guys may have warned about it somewhere, but in our case we "installed" by copying our 12.04 settings to the new computer... "overwriting" the existing settings (we did a backup of the defaults when necessary!)

Personally, I think that the server should not run if a setting is invalid. That way it forces you to look at the logs and see what the f**k is wrong and you can fix it. Anyway, in this case, it was not too bad as we only have 2 customers using this system to pretty much only receive emails.

Solution

Change the following:

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

into this:

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

and it will work!

Note that you probably don't have to change the options, only the name smtpd_recipient_restrictions to smtpd_relay_restriction (name which definitively makes more sense, btw.)