[Mailman-Developers] mailman misparses non RFC 822 compliant Email addresses

Dan Mick Dan Mick <dmick@utopia.West.Sun.COM>
Thu, 12 Apr 2001 19:48:53 -0700 (PDT)


> 
> >>>>> "MM" == Marc MERLIN <marc_news@valinux.com> writes:
> 
>     MM> Correct.  I haven't found the right piece of code in mailman
>     MM> yet, but it smells like a regular expression that grabs the
>     MM> wrong pattern and ends up with davide.fox instead of
>     MM> dfox@m206-157.dsl.tsoft.com
> 
> I suspect the problem is in Python's rfc822 module:
> 
> >>> a = rfc822.AddrlistClass('David E.Fox <dfox@m206-157.dsl.tsoft.com>')
> >>> a.getaddrlist()
> [('', 'DavidE.Fox'), ('', 'dfox@m206-157.dsl.tsoft.com')]
> 
> Mailman, interestingly enough, has Utils.ParseAddrs() which appears to
> try to work around problems in rfc822:
> 
> >>> ParseAddrs('David E.Fox <dfox@m206-157.dsl.tsoft.com>')
> 'dfox@m206-157.dsl.tsoft.com'
> 
> which seems to suck out the right address in this case.  What should
> probably in MM2.1 is for MailList.HasExplicitDest() to fallback on the
> output of ParseAddrs() if the rfc822 method doesn't match.

I'm coming to this late, but: we all agree that 

David E.Fox <dfox@m206-157.dsl.tsoft.com>

is not a legal RFC822 address, right?

Strings containing spaces must-repeat-must be enclosed in
doublequotes:

"David E.Fox" <dfox@m206-157.dsl.tsoft.com>

I see the subject, but: why is this considered to be a "problem"
in rfc822, rather than a problem in the mail format?  I would
expect other MTAs and MUAs to barf on this too.