Skip to content

orguetta/smtp-server

 
 

Repository files navigation

Stalwart SMTP Server

Test Build License: AGPL v3

Stalwart SMTP is a modern SMTP server developed in Rust with a focus on security, speed, and extensive configurability. It features built-in DMARC, DKIM, SPF and ARC support for message authentication, strong transport security through DANE, MTA-STS and SMTP TLS reporting, and offers great flexibility and customization thanks to its dynamic configuration rules and native support for Sieve scripts.

Key features:

  • Sender and Message Authentication:
    • Domain-based Message Authentication, Reporting, and Conformance (DMARC) verification and failure/aggregate reporting.
    • DomainKeys Identified Mail (DKIM) verification, signing and failure reporting.
    • Sender Policy Framework (SPF) policy evaluation and failure reporting.
    • Authenticated Received Chain (ARC) verification and sealing.
    • Reverse IP (iprev) validation.
  • Strong Transport Security:
    • DNS-Based Authentication of Named Entities (DANE) Transport Layer Security.
    • SMTP MTA Strict Transport Security (MTA-STS).
    • SMTP TLS Reporting (TLSRPT) delivery and analysis.
  • Inbound Filtering and Throttling:
    • Sieve scripting language with support for all registered extensions.
    • Filtering, modification and removal of MIME parts or headers.
    • DNS block lists (DNSBL) & Greylisting.
    • Inbound concurrency & rate limiting.
    • Integration with external content filtering systems such as SpamAssassin and ClamAV.
  • Flexible Queues:
    • Unlimited virtual queues with custom routing rules.
    • Delayed delivery with FUTURERELEASE and DELIVERBY extensions support.
    • Priority delivery with MT-PRIORITY extension support.
    • Outbound throttling & Disk quotas.
  • Logging and Reporting:
    • Detailed logging of SMTP transactions and events, including delivery attempts, errors, and policy violations.
    • Integration with OpenTelemetry to enable monitoring, tracing, and performance analysis of SMTP server operations.
    • Automatic analysis of incoming DMARC/TLS aggregate reports, DMARC/DKIM/SPF authentication failure reports as well as abuse reports.
  • And more:
    • SASL authentication.
    • PostgreSQL, MySQL, MSSQL and SQLite support.
    • Granular configuration rules.
    • REST API for management.
    • Memory safe (thanks to Rust).

Get Started

Install Stalwart SMTP on your server by following the instructions for your platform:

You may also compile Stalwart SMTP from the source.

Support

If you are having problems running Stalwart SMTP, you found a bug or just have a question, do not hesitate to reach us on Github Discussions, Reddit or Discord. Additionally you may become a sponsor to obtain priority support from Stalwart Labs Ltd.

Documentation

Table of Contents

Roadmap

The following major features and enhancements are planned for Stalwart SMTP:

  • Embedded Antispam and Antivirus
  • WASM filters
  • Distributed mode
  • Web-based administration

Testing & Fuzzing

The base tests perform protocol compliance tests as well as basic functionality testing on different functions across the Stalwart SMTP code base. To run the base test suite execute:

cargo test

To run the fuzz tests please refer to the Stalwart libraries that handle parsing for the SMTP server: smtp-proto, mail-parser, mail-auth and sieve-rs.

Funding

Part of the development of this project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.

If you find the project useful you can help by becoming a sponsor. Thank you!

License

Licensed under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for more details.

You can be released from the requirements of the AGPLv3 license by purchasing a commercial license. Please contact [email protected] for more details.

Copyright

Copyright (C) 2020-2023, Stalwart Labs Ltd.

Releases

No releases published

Packages

No packages published

Languages

  • Rust 97.5%
  • Shell 2.4%
  • Dockerfile 0.1%