[server] hostname = "test.example.org" [server.listener.jmap] bind = ["127.0.0.1:9990"] url = "https://127.0.0.1:9990" protocol = "jmap" max-connections = 8192 [server.listener.imap] bind = ["127.0.0.1:9991"] protocol = "imap" max-connections = 8192 [server.listener.imaptls] bind = ["127.0.0.1:9992"] protocol = "imap" max-connections = 8192 tls.implicit = true [server.listener.sieve] bind = ["127.0.0.1:9993"] protocol = "managesieve" max-connections = 8192 tls.implicit = true [server.listener.smtps] bind = ['127.0.0.1:9994'] greeting = 'Test SMTP instance' protocol = 'smtp' tls.implicit = true [server.listener.smtp] bind = ['127.0.0.1:9995'] greeting = 'Test SMTP instance' protocol = 'smtp' tls.implicit = false [server.socket] reuse-addr = true [server.tls] enable = true implicit = false certificate = "default" [global.tracing] method = "stdout" level = "info" [session.ehlo] reject-non-fqdn = false [session.rcpt] relay = [ { if = "authenticated-as", ne = "", then = true }, { else = false } ] directory = "local" [session.rcpt.errors] total = 5 wait = "1ms" [queue] path = "/tmp/stalwart-test" hash = 64 [report] path = "/tmp/stalwart-test" hash = 64 [resolver] type = "system" [queue.outbound] next-hop = [ { if = "rcpt-domain", in-list = "local/domains", then = "local" }, { else = false } ] [remote."mock-smtp"] address = "localhost" port = 9999 protocol = "smtp" [remote."mock-smtp".tls] implicit = false allow-invalid-certs = true [session.extensions] future-release = [ { if = "authenticated-as", ne = "", then = "99999999d"}, { else = false } ] [store] db.path = "/tmp/stalwart-test/sqlite.db" [store.blob] type = "local" [store.blob.local] path = "/tmp/stalwart-test" [certificate.default] cert = "file://./tests/resources/tls_cert.pem" private-key = "file://./tests/resources/tls_privatekey.pem" [jmap] directory = "local" [jmap.http] headers = ["Access-Control-Allow-Origin: *", "Access-Control-Allow-Methods: POST, GET, HEAD, OPTIONS", "Access-Control-Allow-Headers: *"] [jmap.protocol] set.max-objects = 100000 [jmap.protocol.request] max-concurrent = 8 [jmap.protocol.upload] max-size = 5000000 max-concurrent = 4 ttl = "1m" [jmap.protocol.upload.quota] files = 3 size = 50000 [jmap.rate-limit] account = "1000/1m" authentication = "100/2s" anonymous = "100/1m" [jmap.event-source] throttle = "500ms" [jmap.web-sockets] throttle = "500ms" [jmap.push] throttle = "500ms" attempts.interval = "500ms" [directory."local"] type = "memory" [directory."local".options] catch-all = true subaddressing = true [directory."local".lookup] domains = ["example.org"] [[directory."local".users]] name = "admin" description = "Superadmin" secret = "secret" member-of = ["superusers"] [[directory."local".users]] name = "john" description = "John Doe" secret = "12345" #secret = "$argon2id$v=19$m=16,t=2,p=1$Ym1GMmMwd210YXpGWUF2Ng$MKUyI28a4OADfd7r2iHulQ" email = ["john@example.org", "jdoe@example.org", "john.doe@example.org"] email-list = ["info@example.org"] member-of = ["sales"] [[directory."local".users]] name = "jane" description = "Jane Doe" secret = "12345" email = "jane@example.org" email-list = ["info@example.org"] member-of = ["sales", "support"] [[directory."local".users]] name = "bill" description = "Bill Foobar" secret = "12345" quota = 500000 email = "bill@example.org" email-list = ["info@example.org"] [[directory."local".groups]] name = "sales" email = "sales@example.org" description = "Sales Team" [[directory."local".groups]] name = "support" email = "support@example.org" description = "Support Team" [oauth] key = "parerga_und_paralipomena" [oauth.auth] max-attempts = 1 [oauth.expiry] user-code = "1s" token = "1s" refresh-token = "3s" refresh-token-renew = "2s" [imap.auth] allow-plain-text = true [imap.rate-limit] requests = "90000/1s" concurrent = 9000 [signature."ed25519"] public-key = "-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAUA3S0BdVG7LeA1agv7ZtqLkQMn+/AoYx1VPyGmLWEIM= -----END PUBLIC KEY-----" private-key = "-----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIPdRszAzLvx4JaSIE4dQdZtN9y2XW+55K+YkCJI6lcn8 -----END PRIVATE KEY-----" domain = "example.org" selector = "stalwart_ed" headers = ["From", "To", "Date", "Subject", "Message-ID"] algorithm = "ed25519-sha256" canonicalization = "simple/simple" set-body-length = true report = true [signature."ed25519-2"] public-key = "11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=" private-key = "nWGxne/9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A=" domain = "example.org" selector = "stalwart_ed2" headers = ["From", "To", "Date", "Subject", "Message-ID"] algorithm = "ed25519-sha256" canonicalization = "simple/simple" set-body-length = true report = true