On 17 Mar 2006, at 16:33, Mark Sapiro wrote:
Giuliano wrote:
On 17 Mar 2006, at 06:37, Mark Sapiro wrote:
I agree that it's a bug, but I think the primary bug is in an MUA
that is generating a reply to mailFrom: smith@home.example
and addresses it
To: "smith@home.example" smith@home.example
Not exactly, it does only add the local_part and without quotes.
But does it ever do it in the case we are concerned with? Namely where the message is
From: list-confirm+string_of_hex_digits@example.com.
Note that the original regexp works as long as the MUA added stuff doesn't contain '+'.
in the case in question, if I understood you well, the MUA (it might
be a webmail interface)
adds list-confirm+string_of_hex_digit so it does add the + and no
quotes.
I have tested your regexp for a "regular" reply and it works. Of course it does not work with that buggy format (wherever one consider the bug to be...) and the fixed version is below.
I'm not sure what "your regexp" means here. Is it the one that is currently in Defaults.py(.in), or my suggested change?
your suggested change.
However, I have no objection to Mailman "working around" this MUA
bug :-) by changingVERP_CONFIRM_REGEXP =r'^(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$'
in Defaults.py.in
I ask though, does anyone have a better suggestion for a replacement than
VERP_CONFIRM_REGEXP =
r'^(\s*"[^"]*")?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$'or is that OK?
it is too specific as I said. This works instead:
Yes, it requires quotes, but as I ask above. Does any MUA that adds this not put quotes around it when it contains '+'?
No, and I do not think it is required is it?
VERP_CONFIRM_REGEXP = r'^(\s*.*)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+) @.*$'
This was checked against many formats and probably the simpler and less reduntant:
VERP_CONFIRM_REGEXP = r'^(.*)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+) @.*$'
would work too. Or even:
VERP_CONFIRM_REGEXP = r'(.*)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$'
as I do not see the point of checking for the line beginning.
Well, I don't think the 'addr' field is actually used, but I think these suggestions eat up all but the last character of it. How about
VERP_CONFIRM_REGEXP = r'(.*<)?(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$'
don't know. I could test it (when I know there are no pending
subscriptions...). I am not sure I understood what ?P means here. Is
it a macro for "print here the value of what follows". So ?P<addr>
prints the confirmation address minus cookie?
Giuliano
-- H U M P H || ||| software
Java & C++ Server/Client/Human Interface applications on MacOS - MacOS X http://www.humph.com/