[dpdk-dev] mailing list configuration

Message ID 9925556.IzvCt3AoYz@xps13 (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Thomas Monjalon March 12, 2016, 6:37 p.m. UTC
  Hi all,

Please find an information notice about mailman running this mailing list.

You can change your settings at this URL:
	http://dpdk.org/ml/options/dev/

There is an option "nodupes":
"
Avoid duplicate copies of messages?
When you are listed explicitly in the To: or Cc: headers of a list message,
you can opt to not receive another copy from the mailing list.
"
It is enabled most of the time (default).

It may be helpful to disable "nodupes", i.e. receive copies, to filter
whole threads from the mailing list (List-Id) in a folder while keeping
a copy of the messages addressed to you in your inbox.
It is a way to avoid missing important messages.

For those who want to keep "nodupes" enabled, i.e. receive only one copy,
mailman will not send them the messages where they are explicit recipients.
So they will receive only the message directly from the sender' SMTP
(untouched by mailman).
But it is not the full story. The other members of the mailing list will
receive the message from mailman with a modified CC header.
Indeed, members having enabled "nodupes" are dropped from CC list.

Some members were complaining about this weird bug-haviour.
That's why this patch has been applied to keep CC list untouched:


Thanks to Olivier for helping.
If anyone is volunteer to work with mailman community, a configuration option
could be introduced.
  

Comments

Yuanhan Liu March 14, 2016, 7:43 a.m. UTC | #1
On Sat, Mar 12, 2016 at 10:37:46AM -0800, Thomas Monjalon wrote:
> Hi all,
> 
> Please find an information notice about mailman running this mailing list.
> 
> You can change your settings at this URL:
> 	http://dpdk.org/ml/options/dev/
> 
> There is an option "nodupes":
> "
> Avoid duplicate copies of messages?
> When you are listed explicitly in the To: or Cc: headers of a list message,
> you can opt to not receive another copy from the mailing list.
> "
> It is enabled most of the time (default).
> 
> It may be helpful to disable "nodupes", i.e. receive copies, to filter
> whole threads from the mailing list (List-Id) in a folder while keeping
> a copy of the messages addressed to you in your inbox.
> It is a way to avoid missing important messages.
> 
> For those who want to keep "nodupes" enabled, i.e. receive only one copy,
> mailman will not send them the messages where they are explicit recipients.
> So they will receive only the message directly from the sender' SMTP
> (untouched by mailman).
> But it is not the full story. The other members of the mailing list will
> receive the message from mailman with a modified CC header.
> Indeed, members having enabled "nodupes" are dropped from CC list.
> 
> Some members were complaining about this weird bug-haviour.
> That's why this patch has been applied to keep CC list untouched:
> 
> --- mailman-2.1.15/Handlers/AvoidDuplicates.py
> +++ mailman-2.1.15/Handlers/AvoidDuplicates.py
...
> 
> Thanks to Olivier for helping.

Thank you both! It is a weird bug to me.

	--yliu

> If anyone is volunteer to work with mailman community, a configuration option
> could be introduced.
  

Patch

--- mailman-2.1.15/Handlers/AvoidDuplicates.py
+++ mailman-2.1.15/Handlers/AvoidDuplicates.py
@@ -51,12 +51,8 @@ 
     for addr in listaddrs:
         explicit_recips[addr.lower()] = True
     # Figure out the set of explicit recipients
-    ccaddrs = {}
     for header in ('to', 'cc', 'resent-to', 'resent-cc'):
         addrs = getaddresses(msg.get_all(header, []))
-        if header == 'cc':
-            for name, addr in addrs:
-                ccaddrs[addr.lower()] = name, addr
         for name, addr in addrs:
             if not addr:
                 continue
@@ -85,8 +81,6 @@ 
             if send_duplicate:
                 msgdata.setdefault('add-dup-header', {})[r] = True
                 newrecips.append(r)
-            elif ccaddrs.has_key(r.lower()):
-                del ccaddrs[r.lower()]
         else:
             # Otherwise, this is the first time they've been in the recips
             # list.  Add them to the newrecips list and flag them as having
@@ -94,7 +88,3 @@ 
             newrecips.append(r)
     # Set the new list of recipients
     msgdata['recips'] = newrecips
-    # RFC 2822 specifies zero or one CC header
-    del msg['cc']
-    if ccaddrs:
-        msg['Cc'] = COMMASPACE.join([formataddr(i) for i in ccaddrs.values()])