Lamson project takes pain out of email

25.12.2009

@route("post-(listname)@(host)") def START(message, listname=None, host=None): ... process handling return POSTING

You have noticed that the function in the example above ended by returning "POSTING". All the processing functions in the handler return the name of another function. This is because Lamson uses finite state machines to represent the status of email senders, allowing you to build complex paths for email systems relatively easily.

Another advantage of Lamson is the ease with which emails can be put in or taken out of the system. By default, Lamson can talk SMTP and use a Maildir as a queue.

There is a simple API to extend if you need other methods. For example, this would allow for a queue in a SQL to interface with another application, or legacy code.

As Lamson is written in Python, it has out of the box support for several handy features, including easy access to different storage back-ends (things like Django ORM, SQLAlchemy, or CouchDB).