----------------
Represents major refactoring with a number of backwards incompatible changes.
The focus of the changes is on simplifying and updating the internals,
removing usage of deprecated APIs, removing unused functionality and using the
`email` module from the standard library wherever possible. A few changes have
been made solely to reduce internal complexity.
- Public facing APIs no longer accept messages passed as strings. Messages
must be instances of email.message.Message.
- Deprecated APIs have been replaced with newer 'email' module throughout.
- Functions that return message ids no longer strip containing less than and
greater than characters.
- Events were removed entirely. There was nothing in the code actually
performing a notify anyway. Removes dependency on zope.event.
- Normalized directory structure. (Got rid of 'src' directory.)
- Got rid of functions to send queued mail from a thread or a daemon process.
These are more appropriately handled in the calling code.
- Removed vocabulary. It was a fossil from its days as zope.sendmail and was
not used by anything.
- Got rid of the zcml directives. These were written in such a way that you
would end up putting deployment configuration in your zcml, which is a
fundamentally broken pattern. Users of the ZCA may still register utilities
aginst the IMailDelivery and IMailer interfaces. This is the recommended way
to use repoze.sendmail with the Zope Component Architecture.
- Removed all interfaces that did not correspond to a rational plug point.
This leaves only IMailDelivery and IMailer.
- Removed dependency on zope.i18nmessageid
- No longer works under Python 2.4 (Python 2.5 required).