python-emails icon indicating copy to clipboard operation
python-emails copied to clipboard

Possible mistake in (clumsy) heuristics for email-list detection

Open Cheaterman opened this issue 7 years ago • 3 comments

Hi buddiez, I hope you're all doing goodie ^__^

I've seen the heuristics for email list detection, and to be honest I'm a bit surprised: from what I can see, the only thing it does is checking weither the iterable is of length 2, if it's a tuple, and if both email and name are string types (or name is falsey - typically empty string or None I suppose).

However, the second check seems to have a typo in the sense that it re-checks the email against string types: https://github.com/lavr/python-emails/blob/master/emails/utils.py#L133

Other than that typo, I feel like this logic is either a bit fragile or not sufficiently documented: if name-email pairs should be tuples, the documentation should likely mention it explicitly (I do realize all examples using name-email pairs are using tuples, but AFAICS it is not explicitly said to be preferred over lists).

Thanks for reading, and thanks in advance for clarifying this issue ^__^

Cheaterman avatar May 03 '17 11:05 Cheaterman

Yep, that code looks weird. I'm surprised too.

lavr avatar Jul 07 '17 23:07 lavr

Guess here is typo in L133 - second check was to ensure that n is a string or None.

But it's clear to me now that heuristics should be rewritten on @ symbol detection.

lavr avatar Jul 07 '17 23:07 lavr

Yep, definitely there's a bug there, it basically hardly works if you try to specify >1 address at the same time.

["[email protected]", "[email protected]"] gets turned into To:<[email protected]> which in my case ends up with the email being silently dropped.

weakcamel avatar Feb 16 '22 12:02 weakcamel