move spf validation out of session
fix spf validation failure
expose log level in maitred-debug config
fix regression in session
make maitred-debug a top level package
re-write session to work like a state machine, lots of other refactoring
Session now works like a state machine and the server functionality is
included as a feature. Lots of other cleanup related to configuration and
usability as a library.
log spf and dkim failures
Reduce duplicated code for STARTTLS connections
add support for HAProxy's PROXY Protocol
wire remote ip address into session
add placeholder for REQUIRETLS
restore main server test, appease clippy
working STARTTLS implementation
Implements STARTTLS with some various refactoring that was require. If TLS
certificates are configured in maitred-debug the server will automatically
advertise and support STARTTLS.
add a basic containerfile for maitred-debug
add neomutt demo accounts, improve maitred-debug
add simple maildir support
handle rejection fatal errors by closing connection
wire in spf verification, config options, refactor
wire up spf validation; refactor
implement dkim sender verification
add simple rewrite module
clarify more supported specs, misc cleanup
fix host parsing for lhlo too
add support for AUTH PLAIN
fixup transport error handling
refactor all configurable closures as traits again
add a few more error codes, add non-pipeline test
rewrite transport to handle pipelining on it's own
drop traits in favor of hkts for milter and delivery
reduce allocations and copying
finish milter with asynchronous background worker
implement basic milter support without queue or delivery
fix func signatures to actually be async
clean up api and export various components
clean up documentation and improve crate structure
finish implementing VRFY and EXPN
make session return command chunks
partially implement EXPN and VRFY commands
refactor to not use explicit config structs
initialize EHLO correctly
ensure client initializes session before processing commands
refactor pipeline and implement it in the server
change request payload to be a ref
remove history from session
implement pipeline module
various cleanup, add a few useful macros
update documentation and add more rfcs
add global timeout when waiting for client data
factor tcp stream out for better testing
write several tests, various refactoring
make message parsing work, support more commands, refactor
flesh out modules for the maitred crate, implement a very broken smtp server