Hi all,

The v1.2 votes are in, and it appears that Email-01 (introducing an
email backend API) needs some more discussion.

I am in complete agreement that Django shouldn't try to become an
email framework. That isn't the intention of this proposal.

The intention is to fix a specific problem that exists for supporting
sandboxed deployment environments, and AppEngine in particular.

AppEngine doesn't provide an SMTP server - the AppEngine sandbox
provides a specific API for sending email, rather than the standard
Python mail API. This is a problem because because Django provides an
API for sending email - and uses that API internally:

 * contrib.auth sends mail as part of the password reset process
 * contrib.comments sends mail as part of the comment moderation process
 * the 500 handler sends mail to site admins
 * the CommonMiddleware sends mail on broken links to site managers

If we're going to fully support AppEngine (and any other sandboxed
deployment platform), we need to provide a way to direct Django's
email APIs to APIs provided by a sandbox.

As a side effect, providing email an backend API cleans up a few other
minor lingering issues:

  - It cleans up the monkeypatching required by the test framework,
since emails can be easily redirected to an in-memory backend during
test execution.

 - It provides an easy way to debug email sending on the development
server. An 'email test server' was proposed - and ultimately rejected
- for v1.1. A 'console' email backend resolves this problem by
providing a way to direct email to stdout, rather than SMTP.

 - It provides an elegant entry point for tools like django-mailer.
The email backend API would allow django-mailer to become a specialist
external email backend. This allows for greater decoupling: apps can
just call the Django mail api, rather than needing to specifically
provide django-mailer support.

I felt an email backend API would be an elegant way to gain a lot of
flexibility, with essentially no impact for existing users. The
original django-dev discussion [1] didn't raise much dissent - but the
voting process has shown that there is obviously some disagreement.

I'm keen to see a resolution to this problem. To that end, I'm
interested in hearing specific criticisms or concerns with the current
backend proposal. I'm also interested in any alternate approaches to
this problem.

[1] 
http://groups.google.com/group/django-developers/browse_thread/thread/ad0e5b2a8fd1ffe4

Yours,
Russ Magee %-)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to