# Minimal Stalwart Mail configuration for local development and integration tests. # # HTTP only — localhost testing, no TLS. # Two test accounts (alice, bob) for multi-account sync tests. [server] hostname = "localhost" [[server.listener]] id = "jmap" bind = ["0.0.0.0:8080"] protocol = "http" [[server.listener]] id = "imap" bind = ["0.0.0.0:1430"] protocol = "imap" [[server.listener]] id = "smtp" bind = ["0.0.0.0:1025"] protocol = "smtp" [[server.listener]] id = "managesieve" bind = ["0.0.0.0:4190"] protocol = "managesieve" [store."db"] type = "sqlite" path = "/tmp/stalwart/data.sqlite" [storage] data = "db" fts = "db" blob = "db" lookup = "db" directory = "memory" [tracer."stdout"] type = "stdout" level = "warn" ansi = false enable = true [directory."memory"] type = "memory" [[directory."memory".principals]] class = "individual" name = "alice@example.com" secret = "secret" email = ["alice@example.com"] [[directory."memory".principals]] class = "individual" name = "bob@example.com" secret = "secret" email = ["bob@example.com"] [authentication.fallback-admin] user = "admin" secret = "admin" # Allow LOGIN/PLAIN on the clear-text dev ports (no TLS in local test env). # By default Stalwart only advertises PLAIN/LOGIN when is_tls — override that. [imap.auth] allow-plain-text = true [session.auth] mechanisms = "[plain, login, oauthbearer, xoauth2]" allow-plain-text = true # Disable rate limiting for local development/testing. [authentication.rate-limit] enable = false