__     __   _  _  ____  ____   __   _  _   __   __  __   
(  )   / _\ ( \/ )(  _ \(    \ / _\ ( \/ ) / _\ (  )(  )  
/ (_/\/    \/ \/ \ ) _ ( ) D (/    \/ \/ \/    \ )( / (_/\
\____/\_/\_/\_)(_/(____/(____/\_/\_/\_)(_/\_/\_/(__)\____/

--- A tiny and restricted SMTP server ---

This is an _extremely simple_ SMTP server designed specifically for
running on personal servers with a very small number (~1) users.  It
is probably best defined in terms of what it does not support:

- It does not (yet?) support TLS connections.
- It does not relay messages between remote addresses.
- It does not allow unauthenticated delivery to remote addresses.
- It does not spawn threads to allow simultaneous connections.
- It does not respond with honest errors on failed deliveries.

Apart from the lack of TLS, I consider these features.  There's no
(obvious) way for LambdaMail to become a source of spam, the lack
of multithreaded operation is a built-in rate limiter (not to mention
its side effect of making all delivery operations "atomic"), and
its penchant for just responding "250 OK" to almost everything means
that it doesn't leak information about users on the system.

I write LambdaMail for just for myself, and it thus lacks any proper
documentation.  However it's a pretty simple (if a bit messy) Scheme
program, so glancing over the code should suffice to get an idea of
how it works.

--- Source code ---
Download the latest source (zip archive)
Browse the git repository
You can clone the repository directly from
git://thelambdalab.xyz/lambdamail.git

As with all the repositories hosted here at the lambda lab, suggested
patches are also welcome!  Just commit your changes to a branch with
name begining with "patch_" and push to the repository above,
describing the nature of the changes in the body of your commit
message.

--- Project Feedback ---
View recent feedback