Home

Awesome

The Lamson Mail Server(TM)

======================

Lamson is a pure Python SMTP server designed to create robust and complex mail applications in the style of modern web frameworks such as Django. Unlike traditional SMTP servers like Postfix or Sendmail, Lamson has all the features of a web application stack (ORM, templates, routing, handlers, state machines, Python) without needing to configure alias files, run newaliases, or juggle tons of tiny fragile processes. Lamson also plays well with other web frameworks and Python libraries.

Features

Lamson supports running in many contexts for processing mail using the best technology currently available. Since Lamson is aiming to be a modern SMTP server and Mail processing framework, it has some features you don't find in any other Mail server.

Installing

If you want to install Lamson then the best source of information is the documentation available at the site, particularly the following documents:

http://lamsonproject.org/docs/getting_started.html

http://lamsonproject.org/docs/deploying_lamson.html

Project Information

You can get documentation, track news, watch screencasts (using actual GNU screen) and other information at:

http://lamsonproject.org/

Source

The source is here http://github.com/zedshaw/lamson so figure it out.

Status

Lamson is 1.1 right now.

License

Lamson is licensed under the license in the https://github.com/zedshaw/lamson/blob/master/LICENSE file. It's a variant of the BSD license that is revokeable and makes contributor's rights clear up front.

Contributing

Most of the features for 1.0 are already being planned, but if you have suggestions for improvements or bug fixes then feel free to join the mailing lists and discuss them:

http://lamsonproject.org/lists/

There is also an IRC channel #lamson on irc.freenode.org you can join to chat, it has low volume and you usually get a fast response.

Testing

The Lamson project uses unit tests, code reviews, coverage information, source analysis, and security reviews to maintain quality. If you find a bug, please take the time to write a test case that fails or provide a piece of mail that causes the failure.

If you contribute new code then your code should have as much coverage as possible, with a minimal amount of mocking.

Security

Lamson follows the same security reporting model that has worked for other open source projects: If you report a security vulnerability, it will be acted on immediately and a fix with complete full disclosure will go out to everyone at the same time. It's the job of the people using Lamson to keep track of security relate problems.

Additionally, Lamson is written in as secure a manner as possible and assumes that it is operating in a hostile environment. If you find Lamson doesn't behave correctly given that constraint then please voice your concerns.

Development

Lamson is written entirely in Python and runs on Python 2.5 or 2.6 but not 3k yet. It uses only pure Python except where some libraries have compiled extensions (such as Jinja2). It should hopefully run on any platform that supports Python and has Unix semantics.

The code is consistently documented and written to be read in an instructional manner where possible. If a piece of code does not make sense, then ask for help and it will be clarified. The code is also small and has a full test suite with about 95% coverage, so you should be able to find out just about anything you need to hack on Lamson in the Lamson source. Particularly you can find online API documentation here:

http://lamsonproject.org/docs/api/

Given the above statements, it should be possible for anyone to take the Lamson source and read through it in an evening or two. You should also be able to understand what's going on, and learn anything you don't by asking questions.

If this isn't the case, then feel free to ask for help understanding it.