|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Mailinabox||12,098||11 hours ago||501||cc0-1.0||Python|
|Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.|
|Mailcatcher||5,910||1,518||16||2 months ago||50||July 04, 2022||38||mit||Ruby|
|Catches mail and serves it through a dream.|
|Mailu||4,577||2 days ago||127||other||Python|
|Insular email distribution - mail server as Docker images|
|Maddy||3,961||1||5 days ago||40||July 01, 2022||87||gpl-3.0||Go|
|✉️ Composable all-in-one mail server.|
|Go Imap||1,784||32||81||3 days ago||30||May 01, 2022||29||mit||Go|
|:inbox_tray: An IMAP library for clients and servers|
|Opinionated email server|
|Go Smtp||1,268||9||64||2 months ago||23||March 15, 2022||39||mit||Go|
|:outbox_tray: An SMTP client & server library written in Go|
|Local, web-based mail server application. Slurp mails into oblivion!|
|Inbucket||1,162||3 months ago||8||May 05, 2018||31||mit||Go|
|Disposable webmail server (similar to Mailinator) with built in SMTP, POP3, RESTful servers; no DB required.|
|Hedwig||1,082||6 years ago||7||mit||Swift|
|Send email to any SMTP server like a boss, in Swift and cross-platform|
Salmon is a pure Python mail server designed to create robust and complex mail applications in the style of modern web frameworks. Salmon is designed to sit behind a traditional mail server in the same way a web application sits behind Apache or Nginx. It has all the features of a web application stack (templates, routing, handlers, state machine) and plays well with other libraries, such as Django and SQLAlchemy.
Salmon has been released uner the GNU GPLv3, as published by the FSF.
Salmon supports running in many contexts for processing mail using the best technology currently available. Since Salmon is aiming to be a modern mail server and Mail processing framework, it has some features you don't find in any other Mail server.
salmon gencommand lets you get an application up and running quick.
pip install salmon-mail
Project documentation can be found here
Salmon is a fork of Lamson. In the summer of 2012 (2012-07-13 to be exact), Lamson was relicensed under a BSD variant that was revokable. The two clauses that were of most concern:
4. Contributors agree that any contributions are owned by the copyright holder and that contributors have absolutely no rights to their contributions. 5. The copyright holder reserves the right to revoke this license on anyone who uses this copyrighted work at any time for any reason.
I read that to mean that I could make a contribution but then have said work denied to me because the original author didn't like the colour of my socks. So I went and found the latest version that was available under the GNU GPL version 3.
Salmon is an anagram of Lamson, if you hadn't worked it out already.
You can find the source on GitHub:
Salmon has just had some major changes to modernise the code-base. The main APIs should be compatible with releases prior to 3.0.0, but there's no guarantee that older applications won't need changes.
Python versions supported are: 3.6, 3.7, 3.8 and 3.9.
See the CHANGELOG for more details on what's changed since Salmon version 2.
Salmon is released under the GNU GPLv3 license, which can be found here
Pull requests and issues are most welcome. Please read our code of conduct before contributing!
I will not accept code that has been submitted for inclusion in the original project due to the terms of its new licence.
The Salmon project has adopted the Contributor Covenant Code version 1.4. By contributing to this project, you agree to abide by its terms.
The full text of the code of conduct can be found here
The Salmon project needs 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.
Tests can be run via:
$ python setup.py test
Alternatively, if you have multiple versions of Python installed locally:
$ pip install tox $ tox -e py36,py37
Refer to the tox documentation for more information.
Salmon is written entirely in Python and runs on Python 3. It should hopefully run on any platform that supports Python and has Unix semantics.
If you find yourself lost in source code, just yell.
PEP-8 should be followed where possible, but feel free to ignore the 80 character limit it imposes (120 is a good marker IMO).
If you have found Salmon to be useful and would like to see its continued development, please consider buying me a coffee.