[Mailman-Users] Any way to disable wrapping of the subject header?

Mark Sapiro mark at msapiro.net
Fri Jun 27 06:33:58 CEST 2008


Adam Nielsen wrote:
>
>Mailman seems to like wrapping the e-mail subject when it gets too long 
>(78 chars I think.)  Because this causes problems with many common 
>e-mail clients (Outlook, Thunderbird, etc.) is there any way to disable 
>the wrap?


Not in Mailman. This is done in the underlying Python email library.


>The problem is that after "folding" the line (as RFC822 puts it) Mailman 
>uses a tab character to indent the line below.  The RFC states that the 
>CRLF+whitespace combination should be replaced by just the whitespace 
>character used - and since Mailman uses CRLF+tab, after unfolding we end 
>up with a tab character in the middle of the e-mail subject.
>
>Thunderbird displays this using ASCII encoding (so you get a little 
>round circle in the middle of the subject) whereas Outlook displays 
>nothing at all (so you get people pointing out that you forgot to put a 
>space in between those words.)  Some MTAs seem to expand the tab into 
>eight spaces, leaving a large gap in the middle of the subject instead.
>
>You can see examples of these in the messages posted to the list 
>yesterday, e.g. "Apache,<tab>mailman and ScriptAlias - not as documented"


This has been discussed before on this and other lists and is being
discussed right now on email-sig at python.org (see
<http://mail.python.org/pipermail/email-sig/2008-June/thread.html>).


>The easiest solution (for me) would be to just disable folding of that 
>header, or alternatively to replace the tab with a space, so that e-mail 
>clients display a single space as originally intended by the author 
>instead of doing something funny with the tab character.
>
>Does anyone know if there's a way to do this, or whereabouts in the code 
>I should start looking?


Search for '\t' in Mailman/Handlers/CookHeaders.py. Some (most)
occurrences can be replaced with ' '.

I think the only one that can't be changed is

    if len(lines) > 1 and lines[1] and lines[1][0] in ' \t':
        ws = lines[1][0]

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan



More information about the Mailman-Users mailing list