Senders' email addresses not in archives

[Using 2.1.17]
I just realized that with the DMARC mitigation “Mung From” option turned on, the senders’ email addresses are not showing up in the archives. So, basically impossible to contact them unless replying to the whole list, and/or the original sender put their address somewhere in the body of the message. Is there a way to have their email addresses get into the archives and still have the Mung From option turned on?
-Conrad
-- Is there a suspect in your family? Contact the Ministry of Information. Ring 100 00 00.

On 07/21/2014 07:58 PM, Conrad G T Yoder wrote:
[Using 2.1.17]
I just realized that with the DMARC mitigation “Mung From” option turned on, the senders’ email addresses are not showing up in the archives. So, basically impossible to contact them unless replying to the whole list, and/or the original sender put their address somewhere in the body of the message. Is there a way to have their email addresses get into the archives and still have the Mung From option turned on?
This is fixed in Mailman 2.1.18 (by not Munging the From: in archived messages). While a fix could be backported to 2.1.17, it would probably be easier to upgrade.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

Conrad G T Yoder writes:
It looks to me (version 2.1.18, though) like the from corruption is performed in the CookHeaders Handler. Perhaps you can move the ToArchive Handler ahead of CookHeaders in the global pipeline (or list by list if you prefer). If I were you I'd wait for confirmation from Mark that that's safe, though. :-) It *should* be safe (since subscriber delivery takes place after ToArchive, ToArchive must be working on copies of the message and metadata or it would mess delivery up), but I haven't audited the code.
To do this, GLOBAL_PIPELINE is a Python list, in Defaults.py. Copy the whole line to mm_cfg.py, and edit it to move the ToArchive (and its trailing comma) ahead of CookHeaders. The usual caveat about "don't ever edit Defaults.py" applies here.
HTH
Steve

On 07/21/2014 09:14 PM, Stephen J. Turnbull wrote:
In 2.1.16 and 2.1.16, the message gets Munged in CookHeaders as Stephen suggests. Thus it's the Munged message that gets archived and included in digests and gated to Usenet.
Beginning in 2.1.18, CookHeaders still determines what to do with headers like From: and Reply-To:, but they aren't actually changed there. Essentially, CookHeaders tells WrapMessage what to do and WrapMessage does it.
That would work and is safe, but instead, I would move CookHeaders to a place just after ToUsenet.
This can be done as Steve suggests by Copying the whole GLOBAL_PIPELINE list to mm_cfg.py and editing it there, but this leads to problems if GLOBAL_PIPELINE is changed in a subsequent release. A better way is to put something like
GLOBAL_PIPELINE.remove('CookHeaders') GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('AfterDelivery'), 'CookHeaders')
in mm_cfg.py. The first line removes CookHeaders from GLOBAL_PIPELINE. The second line[1] inserts CookHeaders in GLOBAL_PIPELINE ahead of AfterDelivery which is just after ToUsenet.
This way if GLOBAL_PIPELINE is changed in a subsequent release, the changes in Defaults.py will be effective because mm_cfg.py is not overriding the whole thing but just moving something.
[1] The second line is probably wrapped here, but it doesn't mater if it is or not as Python ignores line breaks inside parens. I.e.,
(xxx\nyyy)
is the same as
(xxxyyy)
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 07/21/2014 07:58 PM, Conrad G T Yoder wrote:
[Using 2.1.17]
I just realized that with the DMARC mitigation “Mung From” option turned on, the senders’ email addresses are not showing up in the archives. So, basically impossible to contact them unless replying to the whole list, and/or the original sender put their address somewhere in the body of the message. Is there a way to have their email addresses get into the archives and still have the Mung From option turned on?
This is fixed in Mailman 2.1.18 (by not Munging the From: in archived messages). While a fix could be backported to 2.1.17, it would probably be easier to upgrade.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

Conrad G T Yoder writes:
It looks to me (version 2.1.18, though) like the from corruption is performed in the CookHeaders Handler. Perhaps you can move the ToArchive Handler ahead of CookHeaders in the global pipeline (or list by list if you prefer). If I were you I'd wait for confirmation from Mark that that's safe, though. :-) It *should* be safe (since subscriber delivery takes place after ToArchive, ToArchive must be working on copies of the message and metadata or it would mess delivery up), but I haven't audited the code.
To do this, GLOBAL_PIPELINE is a Python list, in Defaults.py. Copy the whole line to mm_cfg.py, and edit it to move the ToArchive (and its trailing comma) ahead of CookHeaders. The usual caveat about "don't ever edit Defaults.py" applies here.
HTH
Steve

On 07/21/2014 09:14 PM, Stephen J. Turnbull wrote:
In 2.1.16 and 2.1.16, the message gets Munged in CookHeaders as Stephen suggests. Thus it's the Munged message that gets archived and included in digests and gated to Usenet.
Beginning in 2.1.18, CookHeaders still determines what to do with headers like From: and Reply-To:, but they aren't actually changed there. Essentially, CookHeaders tells WrapMessage what to do and WrapMessage does it.
That would work and is safe, but instead, I would move CookHeaders to a place just after ToUsenet.
This can be done as Steve suggests by Copying the whole GLOBAL_PIPELINE list to mm_cfg.py and editing it there, but this leads to problems if GLOBAL_PIPELINE is changed in a subsequent release. A better way is to put something like
GLOBAL_PIPELINE.remove('CookHeaders') GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('AfterDelivery'), 'CookHeaders')
in mm_cfg.py. The first line removes CookHeaders from GLOBAL_PIPELINE. The second line[1] inserts CookHeaders in GLOBAL_PIPELINE ahead of AfterDelivery which is just after ToUsenet.
This way if GLOBAL_PIPELINE is changed in a subsequent release, the changes in Defaults.py will be effective because mm_cfg.py is not overriding the whole thing but just moving something.
[1] The second line is probably wrapped here, but it doesn't mater if it is or not as Python ignores line breaks inside parens. I.e.,
(xxx\nyyy)
is the same as
(xxxyyy)
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (3)
-
Conrad G T Yoder
-
Mark Sapiro
-
Stephen J. Turnbull