On 06/01/2022 00:47, Jim Popovitch wrote:
On Thu, 2022-01-06 at 00:11 +0100, John Fawcett wrote:
On 05/01/2022 21:21, Jim Popovitch wrote:
On Wed, 2022-01-05 at 20:45 +0100, John Fawcett wrote:
On 05/01/2022 20:19, Jim Popovitch wrote:
This can't be right....

Using 'postconf -d smtpd_relay_restrictions'...

...on postfix v3.5 (Debian/Buster)
smtpd_relay_restrictions = ${{$compatibility_level} < {1} ? {} :
{permit_mynetworks, permit_sasl_authenticated,
defer_unauth_destination}}

...on postfix v3.6.3 (Debian/Bookworm)
smtpd_relay_restrictions = ${{$compatibility_level} <level {1} ? {} :
{permit_mynetworks, permit_sasl_authenticated,
defer_unauth_destination}}


Notice the extra word 'level' just to the right of the less-than symbol.

-Jim P.

Hi Jim

Using the github "blame" feature on file global/mail_params.h it was
easy to track down when this was introduced:

postfix-3.6-20210109

   From the history file:

20210102

       Infrastructure: support for the <=level, <level, and other
       operators to compare compatibility levels. With the standard
       <=, <, etc. operators, compatibility level 3.10 would be
       less than 3.9 which is undesirable. Files: global/compat_level.[hc]
       and test files.

John

Hi John, Thanks for the quick response and details.  When I upgraded the
system to postfix v3.6 it complained with the following error, however
it has since resolved itself once I set compatibility_level=3.6.

postfix/smtpd[3751]: fatal: in parameter smtpd_relay_restrictions or
smtpd_recipient_restrictions, specify at least one working instance of:
reject_unauth_destination, defer_unauth_destination, reject, defer,
defer_if_permit or check_relay_domains

-Jim P.


Jim

had you previously set a compatibility_level in version 3.5 or left it
at the default? Was the compatibility_level the same when you got the
above fatal message in version 3.6? Did you make changes to
smtpd_recipient_restrictions between version 3.5 and 3.6

The logic behind that fatal message is that you can have an empty
smtpd_relay_restrictions (like you would get if you left defaults for
smtpd_relay_restrictions and compatibility_level) but in that case you
have to have one of the required restrictions in
smtpd_recipient_restrictions.

I don't see changes in that logic between version 3.5 and 3.6.

I did have compatibility_level=2 set when I got that error.  I removed
that setting completely, but the error didn't go away until I
specifically set it to 3.6 (IIRC).

-Jim P.

Jim

glad its working now.

I'd be very surprised to find that changing the compatibility_level from 2 to 3.6, with a default setting for smtpd_relay_restrictions in version 3.6.3 would resolve the fatal error "in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of:reject_unauth_destination, defer_unauth_destination, reject, defer,defer_if_permit or check_relay_domains".

However if you can confirm that is the case I will stand corrected. In that case can you also confirm the settings you have for smtpd_relay_restrictions and smtpd_recipient_restrictions?

John

Reply via email to