Kevin Schoon 8 months ago
17 commits
aa9046a4 aa9046a41ef96fd62b60a0cca25384f201ddb861
initialize EHLO correctly
File Commit Size Mode Time
.gitignore flesh out modules for the maitred crate, implement a very br… 7 B -rw-r--r-- 8 months ago
Cargo.lock make message parsing work, support more commands, refactor 45.7 KiB -rw-r--r-- 8 months ago
Cargo.toml flesh out modules for the maitred crate, implement a very br… 75 B -rw-r--r-- 8 months ago
LICENSE add license 33.7 KiB -rw-r--r-- 8 months ago
README.md implement pipeline module 2.4 KiB -rw-r--r-- 8 months ago
cmd write several tests, various refactoring NaN B d--------- 8 months ago
maitred initialize EHLO correctly NaN B d--------- 8 months ago
rfcs update documentation and add more rfcs NaN B d--------- 8 months ago
scripts write several tests, various refactoring NaN B d--------- 8 months ago

maitred

Lightweight embeddable SMTP RFC5321 server for use in applications that need to receive e-mail.

Use Case

The original goal of this library is to have a usable SMTP server that can be embedded in mailing list software, particularly for use in Ayllu and Mailpot. After considering all of the existing SMTP servers there was no Rust library that could be easily embedded in an application and general purpose SMTP servers like Postfix are too complex to be reasonably packaged.

Security

Due to the common abuse of the SMTP protocol by nefarious internet actors the default behavior of this package must never allow open relaying without explicit and conscious configuration from the user. Additionally the SMTP server must never expose the e-mail addresses or other user data contained within.

Alpha Status

NOTE: This library is at best in an “alpha” state currently and should be used for absolutely nothing that is important.

Protocol Status

SMTP Base server and Commands RFC5321

Name Status Notes
HELO
EHLO
MAIL
RCPT
BDAT
DATA
AUTH No authentication mechanisms currently supported
VRFY
EXPN
STARTTLS For the moment there is no plan to implement STARTTLS

ESMTP Extensions

Name Status RFC
SIZE TODO RFC1870
PIPELINING TODO RFC2920
8BITMIME TODO RFC6152
ENHANCED STATUS CODES TODO RFC2920
SMTPUTF8 TODO RFC6531
CHUNKING TODO RFC3030
DSN TODO RFC3461

Attributions

Several of the free software libraries released by stalwart are in use here.

Clone

HTTP

Subscribe

License

AGPL-3.0

Authors

Kevin Schoon: 100%

Analysis