From e2fe20104068e079266859fbe7a95fdab5d3fee2 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 24 Sep 2023 17:02:52 +0100 Subject: Docs: remove claim that -Mg causes specific wording in bounce. Bug 3026 While investigating, ensure EXPERIMENTAL_DSN_INFO matches --- doc/doc-docbook/spec.xfpt | 2 +- src/src/deliver.c | 23 +++++++++++++++-------- test/mail/0032.CALLER | 1 + test/mail/0037.CALLER | 3 +++ test/mail/0051.CALLER | 2 ++ test/mail/0103.CALLER | 1 + test/mail/0136.forwarder | 2 ++ test/mail/0174.CALLER | 1 + test/mail/0177.CALLER | 1 + test/mail/0296.CALLER | 1 + test/mail/0298.CALLER | 4 ++++ test/mail/0306.anyone | 2 ++ test/mail/0307.anyone | 2 ++ test/mail/0385.CALLER | 4 ++++ test/mail/0461.CALLER | 4 ++++ test/mail/0536.oksender | 1 + test/mail/4620.CALLER | 1 + test/mail/4620.fred[ | 1 + test/mail/5101.copied | 2 ++ test/mail/5204.CALLER | 1 + test/stdout/3412 | 1 + 21 files changed, 51 insertions(+), 9 deletions(-) diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 13991d5cd..85c6d3b3b 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -4020,7 +4020,7 @@ user. This option requests Exim to give up trying to deliver the listed messages, including any that are frozen. However, if any of the messages are active, their status is not altered. For non-bounce messages, a delivery error message -is sent to the sender, containing the text &"cancelled by administrator"&. +is sent to the sender. Bounce messages are just discarded. This option can be used only by an admin user. diff --git a/src/src/deliver.c b/src/src/deliver.c index c9a1d074b..fa624f9de 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -5743,7 +5743,7 @@ wording. */ if (addr->return_file >= 0) { - paddr = &(addr->next); + paddr = &addr->next; filecount++; } @@ -5850,6 +5850,9 @@ wording. */ for (address_item * addr = handled_addr; addr; addr = addr->next) { host_item * hu; +#ifdef EXPERIMENTAL_DSN_INFO + const uschar * s; +#endif print_dsn_addr_action(fp, addr, US"failed", US"5.0.0"); @@ -5857,8 +5860,6 @@ wording. */ { fprintf(fp, "Remote-MTA: dns; %s\n", hu->name); #ifdef EXPERIMENTAL_DSN_INFO - { - const uschar * s; if (hu->address) { uschar * p = hu->port == 25 @@ -5869,12 +5870,15 @@ wording. */ dsn_put_wrapped(fp, US"X-Remote-MTA-smtp-greeting: X-str; ", s); if ((s = addr->helo_response) && *s) dsn_put_wrapped(fp, US"X-Remote-MTA-helo-response: X-str; ", s); - if ((s = addr->message) && *s) + if (testflag(addr, af_pass_message) && (s = addr->message) && *s) dsn_put_wrapped(fp, US"X-Exim-Diagnostic: X-str; ", s); - } #endif print_dsn_diagnostic_code(addr, fp); } +#ifdef EXPERIMENTAL_DSN_INFO + else if (testflag(addr, af_pass_message) && (s = addr->message) && *s) + dsn_put_wrapped(fp, US"X-Exim-Diagnostic: X-str; ", s); +#endif fputc('\n', fp); } @@ -7009,8 +7013,9 @@ if (process_recipients != RECIP_IGNORE) for (i = 0; i < recipients_count; i++) if (!tree_search(tree_nonrecipients, recipients_list[i].address)) { - recipient_item *r = recipients_list + i; - address_item *new = deliver_make_addr(r->address, FALSE); + recipient_item * r = recipients_list + i; + address_item * new = deliver_make_addr(r->address, FALSE); + new->prop.errors_address = r->errors_to; #ifdef SUPPORT_I18N if ((new->prop.utf8_msg = message_smtputf8)) @@ -7070,6 +7075,8 @@ if (process_recipients != RECIP_IGNORE) case RECIP_FAIL: new->message = US"delivery cancelled by administrator"; + /* not setting af_pass_message here means that will not + appear in the bounce message */ /* Fall through */ /* Common code for the failure cases above. If this is not a bounce @@ -7078,7 +7085,7 @@ if (process_recipients != RECIP_IGNORE) The incident has already been logged. */ RECIP_QUEUE_FAILED: - if (sender_address[0]) + if (*sender_address) { new->next = addr_failed; addr_failed = new; diff --git a/test/mail/0032.CALLER b/test/mail/0032.CALLER index 7065137b8..b37b412ee 100644 --- a/test/mail/0032.CALLER +++ b/test/mail/0032.CALLER @@ -36,6 +36,7 @@ Reporting-MTA: dns; myhost.ex Action: failed Final-Recipient: rfc822;userx@mxt1.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; lowest numbered MX record points to local host --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0037.CALLER b/test/mail/0037.CALLER index c0348c457..0ac821a59 100644 --- a/test/mail/0037.CALLER +++ b/test/mail/0037.CALLER @@ -42,14 +42,17 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; subject was "should fail this" (filter fail) Action: failed Final-Recipient: rfc822;abcd@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; subject was "should fail this" (filter fail) Action: failed Final-Recipient: rfc822;usery@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; subject was "should fail this" (filter fail) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0051.CALLER b/test/mail/0051.CALLER index b51ae1bc6..e966d88b5 100644 --- a/test/mail/0051.CALLER +++ b/test/mail/0051.CALLER @@ -92,6 +92,7 @@ Reporting-MTA: dns; myhost.ex Action: failed Final-Recipient: rfc822;userx@badbad.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; unrouteable mail domain "badbad.ex" (:fail:) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -204,6 +205,7 @@ Reporting-MTA: dns; myhost.ex Action: failed Final-Recipient: rfc822;userx@domain2.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; unrouteable mail domain "domain2.ex" (:fail:) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0103.CALLER b/test/mail/0103.CALLER index 6c1d4b8c1..fc117ebda 100644 --- a/test/mail/0103.CALLER +++ b/test/mail/0103.CALLER @@ -87,6 +87,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;":fail: fail message"@special Status: 5.0.0 +X-Exim-Diagnostic: X-str; fail message --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0136.forwarder b/test/mail/0136.forwarder index 0a0f10801..b97fc6221 100644 --- a/test/mail/0136.forwarder +++ b/test/mail/0136.forwarder @@ -38,6 +38,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;forwarder@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; Address unknown (:fail:) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -96,6 +97,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;forwarder@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; Address unknown (:fail:) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: text/rfc822-headers diff --git a/test/mail/0174.CALLER b/test/mail/0174.CALLER index ad62b017a..c63bcb0b1 100644 --- a/test/mail/0174.CALLER +++ b/test/mail/0174.CALLER @@ -33,6 +33,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;userx@non-local.example Status: 5.0.0 +X-Exim-Diagnostic: X-str; unrouteable mail domain "non-local.example" (:fail:) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0177.CALLER b/test/mail/0177.CALLER index 087962bf1..3f4667a8b 100644 --- a/test/mail/0177.CALLER +++ b/test/mail/0177.CALLER @@ -33,6 +33,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; subject was "fail this" (filter fail) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0296.CALLER b/test/mail/0296.CALLER index 5f03e6221..594155c7d 100644 --- a/test/mail/0296.CALLER +++ b/test/mail/0296.CALLER @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;failure@myhost.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; this message is a failure (filter fail) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0298.CALLER b/test/mail/0298.CALLER index 422549f62..05dc46130 100644 --- a/test/mail/0298.CALLER +++ b/test/mail/0298.CALLER @@ -34,6 +34,9 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;failure1@myhost.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; This message is being failed and there's a long and + tortuous + explanation about is that is being sent back to the user. --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -86,6 +89,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;failure2@myhost.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; delivery cancelled --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0306.anyone b/test/mail/0306.anyone index 67e5f59f5..d3d91c279 100644 --- a/test/mail/0306.anyone +++ b/test/mail/0306.anyone @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;list1@lists.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; list1@lists.test.ex is a closed mailing list --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -85,6 +86,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;nonlist@lists.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; nonlist@lists.test.ex is a closed mailing list --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0307.anyone b/test/mail/0307.anyone index 67e5f59f5..d3d91c279 100644 --- a/test/mail/0307.anyone +++ b/test/mail/0307.anyone @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;list1@lists.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; list1@lists.test.ex is a closed mailing list --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -85,6 +86,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;nonlist@lists.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; nonlist@lists.test.ex is a closed mailing list --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0385.CALLER b/test/mail/0385.CALLER index c4f2a9509..36157c835 100644 --- a/test/mail/0385.CALLER +++ b/test/mail/0385.CALLER @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; forced failure --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -87,6 +88,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; forced failure --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -144,6 +146,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; forced failure --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -229,6 +232,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; forced failure --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: text/rfc822-headers diff --git a/test/mail/0461.CALLER b/test/mail/0461.CALLER index 530518192..825cd3f01 100644 --- a/test/mail/0461.CALLER +++ b/test/mail/0461.CALLER @@ -33,6 +33,8 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; all hosts for 'test.ex' have been failing for a long + time (and retry time not reached) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -139,6 +141,8 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;userx@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; all hosts for 'test.ex' have been failing for a long + time (and retry time not reached) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/0536.oksender b/test/mail/0536.oksender index 80b2afb55..32bb774c0 100644 --- a/test/mail/0536.oksender +++ b/test/mail/0536.oksender @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;user22@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; 590 5.4.3 Main and extended code --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/4620.CALLER b/test/mail/4620.CALLER index 48d3e98c6..0c164167f 100644 --- a/test/mail/4620.CALLER +++ b/test/mail/4620.CALLER @@ -38,6 +38,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;remote_user@remote.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; account disabled --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/4620.fred[ b/test/mail/4620.fred[ index 9635c7dc6..9e53c20b1 100644 --- a/test/mail/4620.fred[ +++ b/test/mail/4620.fred[ @@ -38,6 +38,7 @@ Reporting-MTA: dns; the.local.host.name Action: failed Final-Recipient: rfc822;remote_user@remote.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; account disabled --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/5101.copied b/test/mail/5101.copied index dd40c616e..e0f8cc8b3 100644 --- a/test/mail/5101.copied +++ b/test/mail/5101.copied @@ -52,6 +52,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;jack@myhost.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; LMTP error after end of data: 550 Number 2 fails --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 @@ -108,6 +109,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;jack@myhost.test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; LMTP error after end of data: 550 Number 2 fails --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/mail/5204.CALLER b/test/mail/5204.CALLER index c1c378181..cb050b122 100644 --- a/test/mail/5204.CALLER +++ b/test/mail/5204.CALLER @@ -33,6 +33,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;"FAIL cannot route this one (FAIL)"@some.host Status: 5.0.0 +X-Exim-Diagnostic: X-str; cannot route this one (FAIL) --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 diff --git a/test/stdout/3412 b/test/stdout/3412 index 2e2a3f633..9d3ba8751 100644 --- a/test/stdout/3412 +++ b/test/stdout/3412 @@ -49,6 +49,7 @@ Reporting-MTA: dns; myhost.test.ex Action: failed Final-Recipient: rfc822;x@test.ex Status: 5.0.0 +X-Exim-Diagnostic: X-str; no deliveries made locally --NNNNNNNNNN-eximdsn-MMMMMMMMMM Content-type: message/rfc822 -- cgit v1.2.3