On 2026-09-11 at 15:10:45 UTC-0400 (Fri, 11 Sep 2026 21:10:45 +0200)
Benoît Panizzon via mailop <[email protected]>
is rumored to have said:

> Am Fri, 11 Sep 2026 10:44:45 -0500
> schrieb Al Iverson <[email protected]>:
>
>> ESPs handle this by encoding a copy of the recipient's email address
>> into an opaque identifier in a hidden header or the message-ID header,
>> or an unsub link. Which means a unique message for each recipient. It
>> can be painful for some use cases, but if you can figure it out, it
>> should address the problem.
>
> Unfortunately not this kind of situation but imagine this one:
>
> A Granny inviting all her relatives and friends to her 80 birthday,
> about 20 recipients in that email, 8 of which are at hotmail or outlook.
>
> One is not interested and mistakes 'junk' and 'trash' (oh yes, this is
> the main cause of S3150 I fear).
>
> We get a complaint - we block the email account of Granny, our
> customer and until short time ago, we sent her a note to please contact
> XY @ hotmail to check why she/he reported your email as spam - most
> likely the recipient confused junk and trash - please tell him/her not
> to put your email in junk, this causes a complaint and damages our
> ISP mailserver reputation.
>
> Well, now we can not tell her anymore which of the 8 microsoft
> recipients reported her email.
>
> Coding around this issue also is not tivial - adding a customer header
> with a base64 encoded recipient list would be feasible - but it is one
> email in the postfix queue - can I tell postfix to clone that email and
> send it to each recipient separately? If so, I have the same issue, I
> added the header probably with a MILTER when the RCPT TO phase is done
> so at that moment I only have ONE message with a recipient list.

It is in fact trivial to fix this with Postfix:

    default_destination_recipient_limit = 1

OR:

    smtp_destination_recipient_limit = 1

This forces Postfix to deliver a message that has been submitted with multiple 
recipients as multiple one-recipient messages. It is invisible to the sending 
user.

If you are dubious, here's an example of the transcript of the transfer of a 
message sent to 3 recipients in the same domain (redacted as 'example.com') 
with default_destination_recipient_limit=1 as seen in the log on the final 
destination server:

20:24:31.287 5 SMTPI-277593([67.149.19.4]:17096) out: 220 example.com ESMTP\r\n
20:24:31.321 5 SMTPI-277593([67.149.19.4]:17096) inp: EHLO bigsky.scconsult.com
20:24:31.321 5 SMTPI-277593([67.149.19.4]) out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 
81920000\r\n250-STARTTLS\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:31.356 5 SMTPI-277593([67.149.19.4]) inp: STARTTLS
20:24:31.356 5 SMTPI-277593([67.149.19.4]) out: 220 please start a TLS 
connection\r\n
20:24:31.653 4 SMTPI-277593([67.149.19.4]) TLS-369129(DHE_AES256_SHA256) 
connection accepted for DOMAIN(example.com)
20:24:31.762 5 SMTPI-277593([67.149.19.4]) s-inp: EHLO bigsky.scconsult.com
20:24:31.762 5 SMTPI-277593([67.149.19.4]) s-out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 81920000\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:31.793 5 SMTPI-277593([67.149.19.4]) s-inp: MAIL 
FROM:<[email protected]> SIZE=2086
20:24:31.793 4 SMTPI-277593([67.149.19.4]) SPF(scconsult.com) checking
20:24:31.794 4 SMTPI-277593([67.149.19.4]) SPF(scconsult.com) result=pass
20:24:31.794 4 SMTPI-277593([67.149.19.4]) checking MX-record for scconsult.com
20:24:31.794 4 SMTPI-277593([67.149.19.4]) checking relay toaster.scconsult.com
20:24:31.794 5 SMTPI-277593([67.149.19.4]) s-out: 250 [email protected] sender 
accepted\r\n
20:24:31.794 5 SMTPI-277593([67.149.19.4]) s-inp: RCPT 
TO:<[email protected]> ORCPT=rfc822;[email protected]
20:24:31.794 5 SMTPI-277593([67.149.19.4]) s-out: 250 [email protected] 
will leave the Internet\r\n
20:24:31.794 5 SMTPI-277593([67.149.19.4]) s-inp: DATA
20:24:31.794 5 SMTPI-277593([67.149.19.4]) s-out: 354 Enter mail, end with "." 
on a line by itself\r\n
20:24:34.788 2 SMTPI-277593([67.149.19.4]) [11763717] received encrypted, 3815 
bytes
20:24:34.788 5 SMTPI-277593([67.149.19.4]) s-out: 250 11763717 message accepted 
for delivery\r\n
20:24:34.788 5 SMTPI-277593([67.149.19.4]) s-inp: QUIT
20:24:34.788 5 SMTPI-277593([67.149.19.4]) s-out: 221 example.com  closing 
connection\r\n
20:24:34.788 4 SMTPI-277593([67.149.19.4]) TLS connection is closing
20:24:34.788 4 SMTPI-277593([67.149.19.4]) closing connection
20:24:34.788 4 SMTPI-277593([67.149.19.4]) releasing stream

20:24:31.019 5 SMTPI-277594([67.149.19.4]:52757) out: 220 example.com ESMTP \r\n
20:24:31.052 5 SMTPI-277594([67.149.19.4]:52757) inp: EHLO bigsky.scconsult.com
20:24:31.052 5 SMTPI-277594([67.149.19.4]) out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 
81920000\r\n250-STARTTLS\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:31.086 5 SMTPI-277594([67.149.19.4]) inp: STARTTLS
20:24:31.086 5 SMTPI-277594([67.149.19.4]) out: 220 please start a TLS 
connection\r\n
20:24:31.398 4 SMTPI-277594([67.149.19.4]) TLS-369127(DHE_AES256_SHA256) 
connection accepted for DOMAIN(example.com)
20:24:31.542 5 SMTPI-277594([67.149.19.4]) s-inp: EHLO bigsky.scconsult.com
20:24:31.542 5 SMTPI-277594([67.149.19.4]) s-out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 81920000\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:31.578 5 SMTPI-277594([67.149.19.4]) s-inp: MAIL 
FROM:<[email protected]> SIZE=2086
20:24:31.578 4 SMTPI-277594([67.149.19.4]) SPF(scconsult.com) checking
20:24:31.578 4 SMTPI-277594([67.149.19.4]) SPF(scconsult.com) result=pass
20:24:31.578 4 SMTPI-277594([67.149.19.4]) checking MX-record for scconsult.com
20:24:31.578 4 SMTPI-277594([67.149.19.4]) checking relay toaster.scconsult.com
20:24:31.578 5 SMTPI-277594([67.149.19.4]) s-out: 250 [email protected] sender 
accepted\r\n
20:24:31.578 5 SMTPI-277594([67.149.19.4]) s-inp: RCPT 
TO:<Notes#[email protected]> ORCPT=rfc822;Notes#[email protected]
20:24:31.579 5 SMTPI-277594([67.149.19.4]) s-out: 250 
Notes#[email protected] will leave the Internet\r\n
20:24:31.579 5 SMTPI-277594([67.149.19.4]) s-inp: DATA
20:24:31.579 5 SMTPI-277594([67.149.19.4]) s-out: 354 Enter mail, end with "." 
on a line by itself\r\n
20:24:32.679 2 SMTPI-277594([67.149.19.4]) [11763725] received encrypted, 3833 
bytes
20:24:32.679 5 SMTPI-277594([67.149.19.4]) s-out: 250 11763725 message accepted 
for delivery\r\n
20:24:32.679 5 SMTPI-277594([67.149.19.4]) s-inp: QUIT
20:24:32.679 5 SMTPI-277594([67.149.19.4]) s-out: 221 example.com closing 
connection\r\n
20:24:32.679 4 SMTPI-277594([67.149.19.4]) TLS connection is closing
20:24:32.679 4 SMTPI-277594([67.149.19.4]) closing connection
20:24:32.679 4 SMTPI-277594([67.149.19.4]) releasing stream

20:24:38.018 5 SMTPI-277595([67.149.19.4]:35407) out: 220 example.com ESMTP\r\n
20:24:38.052 5 SMTPI-277595([67.149.19.4]:35407) inp: EHLO bigsky.scconsult.com
20:24:38.052 5 SMTPI-277595([67.149.19.4]) out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 
81920000\r\n250-STARTTLS\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:38.086 5 SMTPI-277595([67.149.19.4]) inp: STARTTLS
20:24:38.086 5 SMTPI-277595([67.149.19.4]) out: 220 please start a TLS 
connection\r\n
20:24:38.310 4 SMTPI-277595([67.149.19.4]) TLS-369132(DHE_AES256_SHA256) 
connection accepted for DOMAIN(example.com)
20:24:38.428 5 SMTPI-277595([67.149.19.4]) s-inp: EHLO bigsky.scconsult.com
20:24:38.428 5 SMTPI-277595([67.149.19.4]) s-out: 250-example.com your name is 
not bigsky.scconsult.com\r\n250-DSN\r\n250-SIZE 81920000\r\n250-AUTH LOGIN 
PLAIN\r\n250-ETRN\r\n250-TURN\r\n250-ATRN\r\n250-NO-SOLICITING\r\n250-8BITMIME\r\n250-HELP\r\n250-PIPELINING\r\n250
 EHLO\r\n
20:24:38.460 5 SMTPI-277595([67.149.19.4]) s-inp: MAIL 
FROM:<[email protected]> SIZE=2086
20:24:38.460 4 SMTPI-277595([67.149.19.4]) SPF(scconsult.com) checking
20:24:38.460 4 SMTPI-277595([67.149.19.4]) SPF(scconsult.com) result=pass
20:24:38.460 4 SMTPI-277595([67.149.19.4]) checking MX-record for scconsult.com
20:24:38.460 4 SMTPI-277595([67.149.19.4]) checking relay toaster.scconsult.com
20:24:38.460 5 SMTPI-277595([67.149.19.4]) s-out: 250 [email protected] sender 
accepted\r\n
20:24:38.460 5 SMTPI-277595([67.149.19.4]) s-inp: RCPT 
TO:<[email protected]> ORCPT=rfc822;[email protected]
20:24:38.461 5 SMTPI-277595([67.149.19.4]) s-out: 250 [email protected] 
will leave the Internet\r\n
20:24:38.461 5 SMTPI-277595([67.149.19.4]) s-inp: DATA
20:24:38.461 5 SMTPI-277595([67.149.19.4]) s-out: 354 Enter mail, end with "." 
on a line by itself\r\n
20:24:39.274 2 SMTPI-277595([67.149.19.4]) [11763726] received encrypted, 3824 
bytes
20:24:39.274 5 SMTPI-277595([67.149.19.4]) s-out: 250 11763726 message accepted 
for delivery\r\n
20:24:39.274 5 SMTPI-277595([67.149.19.4]) s-inp: QUIT
20:24:39.274 5 SMTPI-277595([67.149.19.4]) s-out: 221 example.com closing 
connection\r\n
20:24:39.274 4 SMTPI-277595([67.149.19.4]) TLS connection is closing
20:24:39.274 4 SMTPI-277595([67.149.19.4]) closing connection
20:24:39.274 4 SMTPI-277595([67.149.19.4]) releasing stream

(Detangled into per-session blocks)


-- 
 Bill Cole
 [email protected] or [email protected]
 (AKA @[email protected] and many *@billmail.scconsult.com addresses)
 Please keep discussion mailing list replies *on-list*
 Not Currently Available For Hire
_______________________________________________
mailop mailing list
[email protected]
https://list.mailop.org/listinfo/mailop

Reply via email to