NAME¶
Lamson - Lamson is a modern Pythonic mail server built like a web application
server.
SYNOPSIS¶
lamson <action> [options]
DESCRIPTION¶
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.
ACTIONS¶
- log [-port PORT] [-host
HOST] [-pid PIDFILE] [-chroot True|False]
[-chdir DIR] [-umask UMASK] [-uid
UID] [-gid GID] [-FORCE
True|False]
- Runs a logging only server on the given hosts and port. It
logs each message it receives and also stores it to the run/queue so that
you can make sure it was received in testing.
lamson log -port 8825 -host 127.0.0.1 \
-pid ./run/log.pid -chroot False \
-chdir "." -umask False -uid False -gid False \
-FORCE False
If you specify a uid/gid then this means you want to first change to root,
set everything up, and then drop to that UID/GID combination. This is
typically so you can bind to port 25 and then become "safe" to
continue operating as a non-root user.
If you give one or the other, this it will just change to that uid or gid
without doing the priv drop operation.
- send [-port PORT] [-host
HOST] [-debug 0|1] [-sender EMAIL]
[-to EMAIL] [-subject SUBJECT] [-body
BODY] [-attach FILENAME]
- Sends an email to someone as a test message. See the
sendmail command for a sendmail replacement.
lamson send -port 8825 -host 127.0.0.1 -debug 1 \
-sender EMAIL -to EMAIL -subject STR -body STR -attach False'
- sendmail [-port PORT] [-host
HOST] [-debug 0|1] --
[RECIPIENTS]
- Used as a testing sendmail replacement for use in programs
like mutt as an MTA. It reads the email to send on the stdin and then
delivers it based on the port and host settings.
lamson sendmail -port 8825 -host 127.0.0.1 -debug 0 -- [recipients]
- start [-pid PIDFILE] [-FORCE
True|False] [-chroot True|False] [-chdir
DIR] [-umask UMASK] [-uid UID]
[-gid GID] [-boot BOOTMODULE]
- Runs a lamson server out of the given directory.
lamson start -pid ./run/smtp.pid -FORCE False -chroot False -chdir
"." \
-umask False -uid False -gid False -boot config.boot
- stop [-pid PIDFILE] [-KILL
True|False] [-ALL DIR]
- Stops a running lamson server. Give -KILL True to have it
stopped violently. The PID file is removed after the signal is sent. Give
-ALL the name of a run directory and it will stop all pid files it finds
there.
lamson stop -pid ./run/smtp.pid -KILL False -ALL False
- restart [-pid PIDFILE] [-FORCE
True|False] [-chroot True|False] [-chdir
DIR] [-umask UMASK] [-uid UID]
[-gid GID] [-boot CONFIG] [-KILL
True|False] [-ALL DIR]
- Simply attempts a stop and then a start command. All
options for both apply to restart.
- status [-pid PIDFILE]
- Prints out status information about lamson useful for
finding out if it's running and where.
lamson status -pid ./run/smtp.pid
- queue
[-pop|-get|-remove|-count|-clear|-keys] [-name
QUEUE]
- Let's you do most of the operations available to a queue.
lamson queue (-pop | -get | -remove | -count | -clear | -keys) -name
run/queue
- routes [-path PATH] --
[CONFIG] [-test EMAIL]
- Prints out valuable information about an application's
routing configuration after everything is loaded and ready to go. Helps
debug problems with messages not getting to your handlers. Path has the
search paths you want separated by a ':' character, and it's added to the
sys.path.
lamson routes -path $PWD -- config.testing -test ""
It defaults to running your config.testing to load the routes. If you want
it to run the config.boot then give that instead:
lamson routes -- config.boot
You can also test a potential target by doing -test EMAIL.
- gen [-project NAME]
- Generates various useful things for you to get you started.
lamson gen -project STR
- spell [-language LANG] --
[FILES]
- Runs the PyEnchant spell checker on the given file. Use
this to train the spell checker for unit test runs when new words show up.
lamson spell -langauge en_US -- [files]
It will run interactively and if you perform an edit on the file it will
save your changes back to the file and make a backup named with .bak.
- web [-basedir DIR] [-port
PORT] [-host HOST]
- Starts a very simple files only web server for easy testing
of applications that need to make some HTML files as the result of their
operation. If you need more than this then use a real web server.
lamson web -basedir "." -port 8888 -host '127.0.0.1'
This command doesn't exit so you can view the logs it prints out.
- cleanse [-input MAILBOX] [-output
MAILBOX]
- Uses Lamson mail cleansing and canonicalization system to
take an input maildir (or mbox) and replicate the email over into another
maildir. It's used mostly for testing and cleaning.
- blast [-input MAILBOX] [-port
PORT] [-host HOST] [-debug 0|1]
- Given a maildir, this command will go through each email
and blast it at your server. It does nothing to the message, so it will be
real messages hitting your server, not cleansed ones.
- version
- Prints the version of Lamson, the reporitory revision, and
the file it came from.
- help [-for CMD]
- Prints out help for the commands.
lamson help
You can get help for one command with:
lamson help -for STR
SEE ALSO¶
Full documentation for lamson can be found at
http://lamsonproject.org
BUGS¶
Please report bugs at
https://bugs.launchpad.net/lamson
AUTHOR¶
This manual page was written by David Watson <david@kutoken.com>