On Mon, Mar 11, 2019 at 11:48:56PM +0100, A. Schulze wrote:

> I assume the changes behavior is dovecot/pigeonhole now using the advertised 
> "CHUNKING" extension.

Yes.

> Reason: "Data command rejected: Multi-recipient bounce" while there is 
> clearly only one recipient.
> 
> Mar 11 23:27:54 dili postfix-smo/submission/smtpd[22427]: 44JCRG5tYPzCqt2:
>  reject: BDAT from signing-milter.org[84.200.211.109]: 550 5.5.3 <DATA>:
>  Data command rejected: Multi-recipient bounce; from=<> to=<m...@example.org>
>  proto=ESMTP helo=<signing-milter.org>

> since years I have "smtpd_data_restrictions = 
> reject_multi_recipient_bounce,reject_unauth_pipelining,permit"
> Must that be adjusted with 3.4.x?

Your no-BDAT work-around is sufficient until the code is updated
along lines below:

-- 
        Viktor.

--- a/src/smtpd/smtpd.h
+++ b/src/smtpd/smtpd.h
@@ -259,6 +259,10 @@ extern void smtpd_state_reset(SMTPD_STATE *);
 #define SMTPD_CMD_XFORWARD     "XFORWARD"
 #define SMTPD_CMD_UNKNOWN      "UNKNOWN"
 
+#define SMTPD_IN_BODY(state) \
+    (strcmp((state)->where, SMTPD_CMD_DATA) == 0 || \
+     strcmp((state)->where, SMTPD_CMD_BDAT) == 0)
+
  /*
   * Representation of unknown and non-existent client information. Throughout
   * Postfix, we use the "unknown" string value for unknown client information
--- a/src/smtpd/smtpd_check.c
+++ b/src/smtpd/smtpd_check.c
@@ -4582,8 +4582,8 @@ static int generic_checks(SMTPD_STATE *state, ARGV 
*restrictions,
            if (state->recipient && *state->recipient)
                status = check_recipient_rcpt_maps(state, state->recipient);
        } else if (strcasecmp(name, REJECT_MUL_RCPT_BOUNCE) == 0) {
-           if (state->sender && *state->sender == 0 && state->rcpt_count
-               > (strcmp(state->where, SMTPD_CMD_DATA) ? 0 : 1))
+           if (state->sender && *state->sender == 0
+               && state->rcpt_count > (SMTPD_IN_BODY(state) ? 1 : 0))
                status = smtpd_check_reject(state, MAIL_ERROR_POLICY,
                                            var_mul_rcpt_code, "5.5.3",
                                "<%s>: %s rejected: Multi-recipient bounce",

Reply via email to