Permalink
Switch branches/tags
Nothing to show
Commits on Jul 28, 2009
Commits on May 26, 2009
  1. Moved the uncaught exception handler to the top-most level.

    telenieko committed May 26, 2009
    Now uncaught exceptions get handled at the top-most possible
    level in BaseMessageHandler.__call__() so almost everything gets
    caught before getting to the MTA.
Commits on May 19, 2009
  1. Map django normal exceptions to Mail Exceptions.

    telenieko committed May 19, 2009
    We do so from a Middleware, that way you can use things like
    django.shortcuts.get_object_or_404 and get the expected outcome.
  2. It appears there can be messages with absolutely no body

    telenieko committed May 19, 2009
    Even without a blank line. At least GMail will send it,
    in MIME, with no body at all ;)
  3. Typo.

    telenieko committed May 19, 2009
  4. Unhandled exceptions should raise some exception.

    telenieko committed May 19, 2009
    When we reach handle_uncaught_exception we must raise something
    (DeliveryError). This will be handled by the underlying MTA.
    
      * SMTPServer returns DeliveryError.status_code DeliveryError.message
      * readmail prints the message and exits with DeliveryError.status_code
  5. Typo, and Typo 2...

    telenieko committed May 19, 2009
  6. Use exceptions to handle errors until reaching the Handler.

    telenieko committed May 19, 2009
    Finally error handling is done by raising exceptions derived
    from mailserver.exceptions.DeliveryError; Those provide a method
    called get_response() which returns a proper response to be
    mailed to the user as a DSN.
    
    That means we always return 'ok' to the MTA if we managed the
    message somehow (Even on errors), and will only return error
    if there's really a problem (aka error 500).
Commits on May 18, 2009
  1. EmailRequests now accept a recipient parameter.

    telenieko committed May 18, 2009
    EmailRequest.from_message_data takes Envelope-To if no recipient is given.
  2. DeliveryError need to be raised, so we can handle them nicely

    telenieko committed May 18, 2009
    no matter what kind of frontend are we in that instant (i.e. an SMTP
    Server).
  3. We want to provide the Response object from BaseMessageHandler even i…

    telenieko committed May 18, 2009
    …f it is to be ignored later.
  4. Closes #2, initial Middleware handling code.

    telenieko committed May 18, 2009
    Almost copied as-is from Django, so it should work... ;)
  5. Closes #3, Mail specific RequestContext with a

    telenieko committed May 18, 2009
    MAIL_TEMPLATE_CONTEXT_PROCESSORS setting.
    
    By default we have: request, media and i18n.
  6. Use parseaddr() instead of AddressList in headers that are

    telenieko committed May 18, 2009
    supposed to have one single address (From, Envelope-To).
Commits on May 15, 2009
Commits on May 13, 2009
  1. Typo in setup.py..

    telenieko committed May 13, 2009
  2. Make setup.py more happy.

    telenieko committed May 13, 2009
  3. Initial code import

    telenieko committed May 13, 2009