Leap SMTP Relay
===============

Outgoing mail workflow:

    * LEAP client runs a thin SMTP proxy on the user's device, bound to
      localhost.
    * User's MUA is configured outgoing SMTP to localhost
    * When SMTP proxy receives an email from MUA
        * SMTP proxy queries Key Manager for the user's private key and public
          keys of all recipients
        * Message is signed by sender and encrypted to recipients.
        * If recipient's key is missing, email goes out in cleartext (unless
          user has configured option to send only encrypted email)
        * Finally, message is relayed to provider's SMTP relay


Dependencies
------------

Leap SMTP Relay depends on the following python libraries:

  * Twisted 12.3.0 [1]

[1] http://pypi.python.org/pypi/Twisted/12.3.0


How to run
----------

To launch the SMTP relay, run the following command:

  twistd -y smtprelay.tac


Running tests
-------------

Tests are run using Twisted's Trial API, like this:

  trial leap.email.smtp.tests