On 3/4/21 4:20 PM, Mark Dale via Mailman-Users wrote:
>>
>> Thanks Mark. I've copied the message from mbox file and pasted below.
>> (the client's info is marked as redacted).
>>
>> Something I did notice: in the original received email headers I see:
Original as received by the list or from the list?
>> Content-Disposition: inline
>> Content-Type: text/plain; charset="us-ascii"
>> Content-Transfer-Encoding: 7bit
>>
>> And in the mbox file below (of the same message), I see:
>>
>> Content-Disposition: inline
>> Content-Type: text/plain
>> Content-Transfer-Encoding: quoted-printable
OK, that's the issue. The message in the .mbox is after various list
manipulations, but before scrubbing for the pipermail archive, and
somehow the '; charset="us-ascii"' has been lost from the Content-Type:
header, which is why Scrubber scrubs it.
...
>
> FWIW, using Thunderbird I posted the contents of the original email to a
> test list (on the same server, with the same lists configs) and as
> expected the archived message displays correctly as a plaintext email.
>
> The headers this time show as:
>
> === FROM EMAIL HEADER
> MIME-Version: 1.0
> Content-Type: text/plain; charset="us-ascii"
> Content-Transfer-Encoding: 7bit
>
> === FROM MBOX
> MIME-Version: 1.0
> Content-Type: text/plain; charset=utf-8
> Content-Transfer-Encoding: 7bit
This is what should happen. I'm not sure which handler changed the
charset to utf-8, but I don't think that's significant.
Clearly there is something different in either the two lists, or the
message that arrived at the lists, but My only guess is the message that
arrived at the original list was already missing the charset="us-ascii".
Here's something you can try.
Create a file somewhere and give the Mailman's group write permission on
it. Then apply the following patch to Mailman's scripts/post
> === modified file 'scripts/post'
> --- scripts/post 2018-06-17 23:47:34 +0000
> +++ scripts/post 2021-03-05 01:16:56 +0000
> @@ -58,8 +58,12 @@
> # some MTAs have a hard limit to the time a filter prog can run. Postfix
> # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
> # no chance to save the message.
> + content = sys.stdin.read()
> + if listname == LISTNAME:
> + with open('PATH_TO_FILE', 'a') as fp:
> + fp.write(content)
> inq = get_switchboard(mm_cfg.INQUEUE_DIR)
> - inq.enqueue(sys.stdin.read(),
> + inq.enqueue(content,
> listname=listname,
> tolist=1, _plaintext=1)
>
>
where LISTNAME is the problem list's name and PATH_TO_FILE is the path
to the file you created. This file will accumulate all the incoming
messages posted to the list, exactly as they are received by Mailman.
Then we can at least know for sure what that message looks like.
Of course, once you have captured one such message, you can revert the
patch.
--
Mark Sapiro <[email protected]> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
------------------------------------------------------
Mailman-Users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/mailman-users.python.org/
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: https://www.mail-archive.com/[email protected]/
https://mail.python.org/archives/list/[email protected]/