[issue11558] Raise a more helpful exception in email.message.Message.attach after set_payload("some string")

R. David Murray report at bugs.python.org
Sat Mar 1 15:20:33 CET 2014


R. David Murray added the comment:

Thanks, Varun.  Your patch addresses an issue with the current API, but it doesn't address the problem raised in this issue.  The problem in this issue is what happens when the *payload* is a string, and you call attach (to attach a message object) on that message.

Your fix addresses what happens if you pass a string to attach itself.  This also results in an invalid message (it ends up with a payload that contains a list consisting of a single string).  Thinking about changing this raises some interesting questions, though.  For one, the problem isn't that the argument to attach was a string, but that it was not an object that generator knows how to handle (that is, it wasn't a Message object).  For another, is it possible someone is using the email package in a weird context where attaching non-message objects is actually useful?  If so, and we disallow it, then we break someones code.

Since no one has reported calling attach with a non-message object as an actual bug, I'm inclined not to make this change.  Python is a "consenting adults" language, so unless there is a specific reason to disallow something, we generally allow it.

To work on a fix for the reported issue, you should start by turning the code in test_email_attach_to_string into a unit test.

----------
components: +email
nosy: +barry

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11558>
_______________________________________


More information about the Python-bugs-list mailing list