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
