rusmes-server
Main server binary for RusMES. Composes all crates into a running mail server: loads configuration, initializes storage, builds the mailet processing pipeline, and starts protocol servers.
Status
All four protocol servers (SMTP, IMAP, POP3, JMAP) start in parallel. File-based authentication is fully integrated. LDAP/SQL/OAuth2 auth backends require additional wiring to replace the DummyAuthBackend fallback.
Binary
Usage
# With configuration file
# With default configuration (localhost:2525)
Startup Sequence
- Initialize tracing/logging
- Load configuration from TOML file (or use defaults)
- Initialize storage backend (filesystem or PostgreSQL)
- Create metrics collector
- Build mailet processor router from config:
- Parse processor state names
- Create matchers and mailets via factory
- Assemble processing chains
- Initialize authentication backend
- Start SMTP server on configured address
Configuration
Reads rusmes.toml (or path from first CLI argument). Falls back to defaults:
- Domain:
localhost - SMTP:
0.0.0.0:2525 - Storage: filesystem at
/tmp/rusmes - Processors: single "root" processor with
LocalDelivery
Dependencies
Depends on nearly all workspace crates:
rusmes-proto- core typesrusmes-core- mailet engine, factory, processor routerrusmes-storage- storage backendrusmes-smtp- SMTP serverrusmes-imap- IMAP server (declared, not yet started)rusmes-jmap- JMAP server (declared, not yet started)rusmes-config- configuration loadingrusmes-metrics- metrics collectorrusmes-auth- authentication backendtokio- async runtimetracing/tracing-subscriber- logging