summaryrefslogtreecommitdiff
path: root/src/leap/mail/smtp/README.rst
blob: 2b2a1180e5abca222f4b253a2564ff4944b1cca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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]
  * zope.interface 4.0.3 [2]

[1] http://pypi.python.org/pypi/Twisted/12.3.0
[2] http://pypi.python.org/pypi/zope.interface/4.0.3


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