[Zope-dev] MailHost Improvements
Tres Seaver
tseaver at palladion.com
Wed Aug 12 23:12:18 EDT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Alec Mitchell wrote:
> Hello,
>
> I've been working on making Plone use the standard Zope MailHost in place
> of the custom Products.SecureMailHost we've been using since Plone 2.1
> (See: http://dev.plone.org/plone/ticket/8814). During this process I've
> run into a couple bugs in the MailHost implementation and I believe it is
> missing some essential functionality.
>
> The most significant issue is that if you call send() with a messageText
> containing just the message body, and that body has a ':' in it (e.g. a
> url) the body will be treated as a header and you'll send a nonsense
> message. The current implementation of send() also puts a fairly large
> burden on developers who want to generate simple, correctly encoded
> messages. Finally, send() relies heavily on the long deprecated 'rfc822'
> and 'mimetools' modules which have been removed from Python 3.0.
>
> I've attached a patch that updates MailHost to use the 'email' module for
> parsing and generating messages. In addition to fixing the issues that I
> ran across, and maintaining compatibility, it provides a number of new
> features:
>
> * send and sendTemplate accept an optional charset argument. Using this
> will set the content-type charset, as well as trigger appropriate encoding
> if needed.
>
> * send and sendTemplate accept an optional msg_type argument which will
> set the content type header for the message.
>
> * The messageText, mfrom, mto, and subject arguments may now be unicode or
> encoded non-ascii strings, provided a charset is given. Any unicode input
> will be automatically encoded to the provided charset (or the default
> charset). Headers will be further encoded in compliance with rfc2822.
> The message body will be further encoded using a transfer encoding
> determined by the email.Charset registry (e.g. 7bit for us-ascii,
> quoted-printable for utf-8 and iso8859, base64 for most other encodings).
>
> * The messageText argument now accepts email.Message.Message objects
> directly.
>
> I'm attaching a patch that includes these changes as well as tests for all
> new functionality. I hope to integrate these changes into Zope 2.12
> before final release, but would like to hear the opinions of Zope
> developers before committing. Though these are fairly significant
> changes, I believe they provide very useful functionality as well as at
> least one critical fix, while maintaining 100% compatibility.
+1 for the approach in general (I haven't looked at the patch in
detail). Assuming all tests pass, and that you have a test exercising
the ':' bug you describe, I would just commit it on the trunk (I think
such a change should be in the upcoming 2.12 beta).
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFKg4SS+gerLs4ltQ4RAgOuAJ0W2CNRCDQglY75s0HVKFnChOwbnwCfSEmu
ph+wxAWDwjG3J8xZV1Cr6+U=
=tZEF
-----END PGP SIGNATURE-----
More information about the Zope-Dev
mailing list