Commit graph

443 commits

Author SHA1 Message Date
mdecimus 35fcfb8c81 Fix: Fails to start when Elasticsearch is down/starting up (closes #334) 2024-04-14 19:44:28 +02:00
mdecimus d876033c1a Use cross-compilation for CI, build the Docker image from source (#85) 2024-04-12 16:35:00 +02:00
mdecimus 4ba65d6676 Updated webadmin location + Doc fixes 2024-04-12 15:08:51 +02:00
mdecimus 0e8961937e Filter out invalid timestamps on log entries 2024-04-10 16:53:26 +02:00
mdecimus e8205a27ca Remove ASN.1 DER structure from DKIM ED25519 public keys 2024-04-10 12:37:48 +02:00
Aaron Dewes c4b0493fdc
Make initial admin password configurable via env (#311)
This is useful for running Stalwart in Docker or packaging it for certain systems
2024-04-10 09:56:33 +02:00
mdecimus 62aa3be182 Updated resources 2024-04-09 11:57:53 +02:00
mdecimus 23edd40fd0 Fixed DKIM public key format 2024-04-08 11:09:02 +02:00
mdecimus 44f531ecf9 Fixed compile without SQL dbs 2024-04-07 17:39:58 +02:00
mdecimus 841b8000c4 Updated install script 2024-04-07 17:20:50 +02:00
mdecimus ab47eab1d9 Automatic spam filter and webadmin downloading + quickstart 2024-04-05 19:00:55 +02:00
mdecimus 3a5ca70365 DKIM record management API 2024-04-04 11:51:47 +02:00
mdecimus 93a2f691ea OAuth and cryto management APIs + Store OAuth codes in lookup stores rather than memory 2024-04-02 17:50:37 +02:00
mdecimus 223bd59bab REST API cleanup 2024-04-01 19:48:59 +02:00
mdecimus 35562bb9fd Use safe defaults when settings are missing 2024-03-30 18:12:40 +01:00
mdecimus cb4d2f15ae Config hot reloading API 2024-03-28 17:21:32 +01:00
mdecimus 16b0465933 Unified TLS certificate management 2024-03-28 11:12:46 +01:00
mdecimus 37eb6483ca Settings hot reloading - All tests passing 2024-03-27 11:35:02 +01:00
mdecimus 170ff38d1f Settings hot reloading - Part 4 2024-03-26 18:40:41 +01:00
mdecimus d8af9b4576 Settings hot reloading - Part 3 2024-03-24 19:20:36 +01:00
mdecimus 5756815e3e Settings hot reloading - Part 2 2024-03-22 20:16:02 +01:00
mdecimus 333a0d5a1b Settings hot reloading - Part 1 2024-03-21 20:07:21 +01:00
mdecimus 7e1a95c1ee Config file changes 2024-03-20 12:03:10 +01:00
mdecimus 9a4110e343 Config API changes 2024-03-18 16:16:00 +01:00
mdecimus 110349f5c2 Use custom resolver (closes #141) 2024-03-18 16:13:01 +01:00
mdecimus 851c3b6e1a Use relaxed DNS parsing, allowing underscores in DNS labels (closes #172) 2024-03-14 13:20:45 +01:00
mdecimus 310ce49314 Updated settings REST API 2024-03-11 11:30:12 +01:00
mdecimus 3081958765 Escape regexes within matches() (#155) 2024-03-07 16:57:53 +01:00
mdecimus 5b30d49327 Faster IMAP UID generation (mySQL and RocksDB impl) 2024-03-06 18:54:05 +01:00
mdecimus 7041d495fc Faster IMAP UID generation 2024-03-06 17:41:38 +01:00
mdecimus 9bfdfb57be Fix: second IDLE connections disconnects the first one (fixes #280) 2024-03-05 12:22:30 +01:00
mdecimus f92027142c Store quotas as u64 2024-03-05 11:01:59 +01:00
mdecimus 48f255b31f Iterate values rather than sending multiple get requests 2024-03-05 10:35:16 +01:00
mdecimus ff279b3a39 Global threadId caching 2024-03-04 18:51:24 +01:00
mdecimus 31bc716a5f ThreadID caching 2024-03-04 17:43:02 +01:00
mdecimus cf9a16c462 IMAP4 folder caching 2024-03-04 16:03:17 +01:00
mdecimus 2b9eacb584 Rollback PostgreSQL (failed) optimizations 2024-03-03 18:53:39 +01:00
mdecimus 49daa14fef Fixed PSQL dependency 2024-03-03 11:46:24 +01:00
mdecimus fafb1f3ff0 Store RoaringBitmaps in PostgreSQL 2024-03-03 11:34:10 +01:00
mdecimus f989f4f750 LZ4 compress blobs by default (closes #227) 2024-03-02 18:02:30 +01:00
mdecimus 62a4f70ac8 Store message headers in message metadata 2024-03-02 16:45:41 +01:00
mdecimus 875b1fa744 Store incoming reports in the data store 2024-03-02 12:21:03 +01:00
mdecimus 417bc38288 Support for S3 bucket prefixes 2024-03-02 09:33:36 +01:00
mdecimus 0bd4f8148e Improved TLS/DMARC report API 2024-02-27 19:17:01 +01:00
mdecimus d94a6a2ec6 ManageSieve LOGOUT shoud reply with OK insted of BYE 2024-02-27 17:25:05 +01:00
mdecimus 414a1434e0 Add allow plain text auth on ManageSieve 2024-02-25 19:27:29 +01:00
mdecimus 044ecda98a Principal update API changes 2024-02-24 20:22:34 +01:00
mdecimus be7c4cca73 Return counter value from counter_incr function 2024-02-21 13:07:10 +01:00
mdecimus 75bb02d13a OAuth REST API 2024-02-20 18:44:14 +01:00
mdecimus 8027f135bc Updated REST principal API 2024-02-18 16:48:44 +01:00
mdecimus afe10e6d81 Added expression functions. 2024-02-16 16:02:00 +01:00
mdecimus 7f5538a729 Added sql_query expression function 2024-02-15 18:57:21 +01:00
mdecimus 53f0222f30 Updated directory expressions 2024-02-14 15:44:35 +01:00
mdecimus 9472456ea0 v0.6.0 2024-02-14 14:38:04 +01:00
mdecimus 8471706643 Clippy fixes 2024-02-13 15:00:58 +01:00
mdecimus 44db67cc2a Distributed SMTP queues and Rate limiting passing tests 2024-02-13 14:35:28 +01:00
mdecimus 66669545ff SMTP HELO command 2024-02-10 16:25:34 +01:00
Mauro D 3d7b9b0334 Test fixes 2024-02-10 15:39:05 +01:00
Mauro D d16119f54b Distributed SMTP queues (untested) 2024-02-08 20:03:57 -03:00
Mauro D d15f598460 Do not include STATUS in NOOP responses (fixes #234) 2024-02-08 10:16:03 -03:00
Mauro D f54670a6f6 DNS lookups from eval functions (closes #30) 2024-01-21 10:14:53 -03:00
Mauro D 9f25761014 OAuth: redirect using a 301 instead of a 307 code 2024-01-21 08:03:21 -03:00
Mauro D d7d27063d8 Updated configuration files 2024-01-19 19:10:31 +01:00
mdecimus 02faa04e27 Config expressions passing tests. 2024-01-19 13:06:39 +01:00
mdecimus 4551576e04 Expressions in configuration files (untested) 2024-01-18 18:18:32 +01:00
mdecimus 4b5576cab4 v0.5.3 2024-01-14 10:53:41 +01:00
mdecimus 02ddbfcc64 X-Forwarded-For on JMAP Rate-Limit does not work (fixes #208) 2024-01-13 17:34:58 +01:00
mdecimus 6aeadb9cda Fail2ban and IP address blocking support (closes #164) 2024-01-13 12:59:10 +01:00
mdecimus b7c03445e4 URL and credentials from env for stalwart-cli (closes #88) 2024-01-09 18:23:12 +01:00
mdecimus 5c1a0f7d2f Added timeouts to install script (fixes #138) 2024-01-09 18:16:28 +01:00
mdecimus 633181a80c Use Rust native async traits 2024-01-09 18:11:26 +01:00
mdecimus 407c051e93 Log config errors + Do not send EHLO after AUTH 2024-01-09 18:03:12 +01:00
mdecimus c7be16692e Fixed IMAP retrieval of auto-encrypted emails (fixes #203) 2024-01-09 12:26:30 +01:00
mdecimus f53ef18f61 Add max-allowed-packet setting to mySQL driver (closes #201). 2024-01-09 11:34:49 +01:00
mdecimus 8db9a842a8 Parse mysql timeout.wait property as duration (closes #202) 2024-01-09 11:28:52 +01:00
mdecimus d829b56571 v0.5.2 2024-01-07 15:34:46 +01:00
mdecimus 3a800aff7a HAProxy protocol support (closes #36) 2024-01-06 20:02:31 +01:00
mdecimus 5ceecff34a Fixed OAuth verification_uri_complete parameter (fixes #192) 2024-01-06 19:39:24 +01:00
mdecimus ffba9b5a61 ACME TLS implementation using TLS-ALPN-01 - closes #160 2024-01-05 18:44:22 +01:00
mdecimus 172c8afae0 IMAP responses to APPEND and EXPUNGE should include HIGHESTMODSEQ when CONDSTORE is enabled. 2024-01-03 14:55:36 +01:00
mdecimus 7152dcdb3a IMAP SEARCH by sequence number fix 2024-01-03 09:42:55 +01:00
mdecimus f301721465 v0.5.1 2024-01-02 11:28:15 +01:00
mdecimus 572ae9b44b IMAP fixes 2024-01-01 18:09:21 +01:00
mdecimus 659a3aa317 SMTP sender validation 2023-12-31 11:48:28 +01:00
mdecimus b36d2dbf78 Fixed IMAP SEARCH BEFORE command 2023-12-31 10:17:29 +01:00
mdecimus 2f58638df6 Bump to mail-send 0.4.6 2023-12-30 09:43:18 +01:00
mdecimus 80007961db Added SMTP smuggling tests 2023-12-29 20:10:15 +01:00
mdecimus b7f9d5ed02 RocksDB optimizations 2023-12-29 17:33:55 +01:00
mdecimus ec077d8796 Use crates.io for internal crates 2023-12-28 11:57:21 +01:00
mdecimus 44092e006a Updated CI job 2023-12-26 20:26:22 +01:00
mdecimus 383cb479b6 Drop privileges before creating databases 2023-12-26 11:45:23 +01:00
mdecimus bb760bc1f9 Fixed account creation 2023-12-26 11:17:22 +01:00
mdecimus 7ea3460469 Updated configuration files + CHANGELOG 2023-12-25 19:35:15 +01:00
mdecimus ce456c02eb Lookup store refactoring 2023-12-24 11:25:50 +01:00
mdecimus 93d8504950 Updated tests 2023-12-23 08:58:30 +01:00
mdecimus 8ff0d3ff9c Fixed tests 2023-12-22 10:27:43 +01:00
mdecimus 7ff851e350 Fixed compiling for RocksDB only 2023-12-21 18:54:04 +01:00
mdecimus 562015df24 Fixed compiling for RocksDB only 2023-12-21 18:53:21 +01:00
mdecimus bda7cda59d Updated installer 2023-12-21 18:09:37 +01:00
mdecimus 31719963c9 ACL storage optimization 2023-12-21 13:29:09 +01:00
mdecimus be78a26193 Automatic creation of JMAP identities 2023-12-21 11:30:31 +01:00
mdecimus 57885e6db6 Move spam messages to Junk folders when spam headers are present 2023-12-21 10:56:28 +01:00
mdecimus 91e8597998 Internal directory + CLI improvements 2023-12-20 20:09:39 +01:00
mdecimus d4aca0a8e0 RocksDB stress test fixes + find_merge_thread() bugfix 2023-12-20 17:06:32 +01:00
mdecimus f7313eecaf Internal directory + HTTP management API passing tests 2023-12-19 12:38:46 +01:00
mdecimus ea94de6d77 CLI account management + Directory refactoring 2023-12-18 22:25:42 +01:00
mdecimus 566a2a0ab8 Key space optimization 2023-12-16 21:24:34 +01:00
mdecimus 232d4d691a Internal directory implementation + Management REST API 2023-12-16 10:35:15 +01:00
mdecimus f21bce722e Directory refactoring 2023-12-14 12:35:25 +01:00
mdecimus b7869901ee Redis lookup backend implementation 2023-12-12 18:45:52 +01:00
mdecimus 78afc703f5 delete_range to use impl Key 2023-12-12 15:42:41 +01:00
mdecimus 4301ec16d0 Key/value store access from Sieve scripts 2023-12-12 15:28:21 +01:00
mdecimus 78f932990d Key space reorganization 2023-12-09 17:02:38 +01:00
mdecimus 166020b45b FDB chunked values support 2023-12-08 19:49:44 +01:00
mdecimus db564ae0db Bump to rustls 0.22 2023-12-08 10:46:20 +01:00
mdecimus e4d5bde1ce Directory/Store backend unification + LDAP auth bind 2023-12-07 16:27:19 +01:00
mdecimus a7acc67cf1 FTS store bigrams in kv rather than index 2023-12-04 10:23:10 +01:00
mdecimus 7e94a08067 ElasticSearch backend implementation 2023-12-03 19:40:16 +01:00
mdecimus 2ccf85d6dd Store API cleanup 2023-12-02 18:43:28 +01:00
mdecimus 5010c15037 RocksDB backend re-implementation 2023-12-02 15:52:05 +01:00
mdecimus 4a00bbb79e mySQL backend implementation 2023-12-01 07:49:12 +01:00
mdecimus 5f36e1f356 PostgreSQL backend implementation 2023-11-30 12:43:28 +01:00
mdecimus a1f7ad891a FDB blob storage support 2023-11-28 10:40:30 +01:00
mdecimus 0168c1dca8 IMAP4rev1 Recent flag support 2023-11-27 15:21:43 +01:00
mdecimus 8f6ac2d114 Improved storage of IMAP UIDs + Bump to hyper 1.0.1 2023-11-27 10:06:48 +01:00
mdecimus bcc05340b2 FTS storage implementation and background indexing 2023-11-17 14:59:09 +01:00
mdecimus a3e6d152c9 Blob store tests 2023-11-12 18:51:31 +01:00
mdecimus cbcd6d0916 Blob storage improvements 2023-11-12 10:54:04 +01:00
mdecimus 0e25f3d12c Store keys refactoring 2023-11-09 16:21:39 +01:00
mdecimus fe5a9e8ce8 Created Store trait, removed maybe_async 2023-11-07 19:27:57 +01:00
mdecimus dded91b93e Store message metadata, avoid parsing messages on get 2023-11-05 16:01:16 +01:00
mdecimus 0881309819 Fix: remove extra whitespace from IMAP BODY responses 2023-11-02 14:47:36 +01:00
Mauro D c0a779d889 Fix: Do not return JMAP Quota object when there is no quota configured 2023-11-01 19:21:16 +01:00
mdecimus df45384fcd v0.4.2 2023-11-01 12:08:24 +01:00
Mauro D ee088d5184 Fixed cron issue handling DST 2023-10-29 20:42:36 +01:00
mdecimus 795ad97553 Imported empty headers/parts rules from Rspamd 2023-10-27 11:02:51 +02:00
mdecimus 39ec03e9cc Fixed bayes_is_balanced function 2023-10-25 16:58:33 +02:00
mdecimus e551e094fd Support for IMAP multiline responses in directories 2023-10-25 15:57:00 +02:00
mdecimus e2b781566d v0.4.0 2023-10-25 11:26:28 +02:00
mdecimus 3c0e428669 Created config bundle 2023-10-25 09:56:46 +02:00
Mauro D c576196ee1 Fixed imap directory trace 2023-10-24 21:50:42 +02:00
mdecimus b5fe327e83 Trusted/untrusted Sieve runtimes 2023-10-23 18:58:04 +02:00
mdecimus 73ccf7be65 Spam filter adjustements 2023-10-23 17:19:16 +02:00
mdecimus eae3457f77 Remove trailing dot from iprev ptr 2023-10-21 18:46:48 +02:00
mdecimus 4034c86344 Fixed dev-dependencies 2023-10-21 17:19:01 +02:00
mdecimus c02f4cc9c8 Bump to hickory-resolver 0.24 2023-10-21 16:31:10 +02:00
mdecimus f9b37a3c99 Spam filter combined tests passing 2023-10-20 19:18:18 +02:00
mdecimus b5409a0b00 Macros, include support, added scores 2023-10-20 15:31:05 +02:00
mdecimus 8caf3b9d56 Remote lookups, directory query scheduler, config restructuring 2023-10-19 19:48:39 +02:00
mdecimus c2974a172d Added Sync + Send to stemmer trait 2023-10-18 18:16:40 +02:00
mdecimus 30092ce92c v0.3.10 2023-10-17 20:56:48 +02:00
mdecimus d448ac6353 Pyzor support 2023-10-16 19:18:52 +02:00
mdecimus 29a8ecb29b Antispam reputation and composite rules 2023-10-15 16:15:14 +02:00
mdecimus 0b67f31220 Bayes classifier passing tests 2023-10-15 09:07:19 +02:00
mdecimus ace58f74eb Bayes classifier 2023-10-11 19:21:11 +02:00
mdecimus 3d9efd363a Bayes classifier, type tokenizer and NLP module reorganization 2023-10-10 18:58:38 +02:00
mdecimus a0812095ef v0.3.9 2023-10-07 08:53:35 +02:00
mdecimus 4ae0ede9ee Anti-SPAM DMARC, HELO, IP and RBL scripts 2023-10-06 16:53:50 +02:00
mdecimus 7824368cf3 Added MIME, URL and headers spam modules. 2023-10-01 19:37:55 +02:00
mdecimus 638ad25ce9 Access to external Sieve functions from eval 2023-09-27 18:48:30 +02:00
mdecimus c3d6ac5401 Convert IPv6 mapped addresses to IPv4 2023-09-26 08:13:14 +02:00
mdecimus f069691844 Antispam from, recipient and reply-to modules 2023-09-24 19:06:35 +02:00
mdecimus 4690a9d625 Antispam bounce, date, from, message-id and received tests 2023-09-22 10:52:22 +02:00
mdecimus 5068ecdd9e v0.3.8 2023-09-19 19:02:42 +02:00
mdecimus bb7f43ecab Fix: Folders that contain a & can't be used (#90) 2023-09-16 11:06:52 +02:00
mdecimus 216fcf2d73 Journal support 2023-09-15 19:39:03 +02:00
mdecimus 0a640c3758 Sieve antispam functions, bump OpenTelemetry version 2023-09-15 19:29:58 +02:00
mdecimus ab65fa877b Antispam sieve script draft 2023-09-12 19:37:14 +02:00
mdecimus 8bceb49fb7 Support for UTF8 APPEND + ignore empty lines in IMAP 2023-09-07 14:29:16 +02:00
mdecimus cb41c91fb4 Replaced rpgp with sequoia-pgp 2023-09-07 14:28:51 +02:00
mdecimus 833db92ded Bump to mail-parser 0.9 2023-09-05 18:23:52 +02:00
mdecimus 6939603932 v0.3.7 2023-09-05 15:04:24 +02:00
mdecimus 6404d27dd9 Fixed Ipv6thenIpv4 SMTP lookups 2023-09-05 14:22:16 +02:00
mdecimus 56b1fb893d Fixed IMAP encoding on non-UTF-8 messages + improved Received headers in SMTP 2023-09-05 12:16:10 +02:00
mdecimus 4e021b228c Add parameter to disable IMAP All Messages folder 2023-09-02 16:51:18 +02:00
mdecimus 9860631691 Allow STATUS and ACL operations on virtual mailboxes 2023-09-02 16:41:20 +02:00
mdecimus 3fa5c769bd STARTLS optional fix + Sieve functions 2023-09-01 14:41:58 +02:00
mdecimus 0e3a226d9f Fix: SELECT QRESYNC without speficying uid causes panic (#67) 2023-08-31 15:06:02 +02:00
mdecimus 634c66e987 Milter DATA command sent before headers 2023-08-30 17:49:12 +02:00
mdecimus 2847715f76 Fixed Sieve redirect of unmodified messages 2023-08-30 16:34:07 +02:00
mdecimus 4238c1409e Add rcpt-domain key to rcpt.relay rule evaluation 2023-08-30 16:10:40 +02:00
mdecimus 5b88a03e92 v0.3.6 2023-08-29 12:31:08 +02:00
mdecimus 57a63b1467 Fixed ManageSieve PUTSCRIPT command 2023-08-28 19:57:50 +02:00
mdecimus cc582b05f9 Migrate to new Sieve version 2023-08-28 19:44:23 +02:00
mdecimus 758280837d Configurable milter protocol flags 2023-08-27 10:00:11 +02:00
mdecimus e73c82e7d8 Antispam: Eval meta expressions in Sieve, support for named capture groups. 2023-08-26 17:20:04 +02:00
mdecimus 79599f2f9c Do not panic when report hash = 0 (#60) 2023-08-26 13:13:37 +02:00
mdecimus 426c073b25 Fallback to plain-text when STARTTLS is optional 2023-08-25 20:05:41 +02:00
mdecimus 5da7e40147 Fixed JMAP session resource 2023-08-25 09:30:02 +02:00
Mauro D dbaaff48f0 AST parser for SpamAssassin meta expressions 2023-08-20 17:44:26 +02:00
Mauro D 016a5bde18 v0.3.5 2023-08-18 19:48:57 +02:00
Mauro D c8c32f3198 Added nodelay socket option 2023-08-16 19:06:57 +02:00
Mauro D 0c95388a70 Fixed setting to allow disabling STARTTLS 2023-08-16 16:51:01 +02:00
Mauro D dc960fba63 Flush tcp streap after write 2023-08-16 16:22:09 +02:00
Mauro D f7ee2f6423 Antispam implementation - part 2 2023-08-14 22:01:41 +02:00
Mauro D 9660f1f9e1 Added OPTIONS handler for CORS pre-flight requests 2023-08-13 15:16:23 +02:00
mdecimus d4fe318812 Antispam implementation - part 1 2023-08-11 18:46:09 +02:00
mdecimus 32a50ec34c v0.3.4 2023-08-09 19:47:27 +02:00
mdecimus 6cb27d6aa9 Missing envelope keys in rewrite rules (#25) 2023-08-09 12:45:46 +02:00
mdecimus ca29121ad9 Allow custom HTTP headers to be set (#52) 2023-08-08 19:21:01 +02:00