diff options
-rw-r--r-- | .github/ISSUE_TEMPLATE/bug_report.yml | 1 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/feature_request.yml | 2 | ||||
-rw-r--r-- | CHANGELOG.md | 16 | ||||
-rw-r--r-- | UPGRADING.md | 8 | ||||
-rw-r--r-- | crates/smtp/src/core/eval.rs | 2 | ||||
-rw-r--r-- | crates/smtp/src/reporting/mod.rs | 1 | ||||
-rw-r--r-- | resources/config.zip | bin | 171400 -> 171355 bytes | |||
-rw-r--r-- | resources/config/smtp/queue.toml | 4 | ||||
-rw-r--r-- | resources/config/smtp/report.toml | 2 |
9 files changed, 28 insertions, 8 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index ce3f939d..c8a18730 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -31,6 +31,7 @@ body: label: Version description: What version of our software are you running? options: + - v0.6.x - v0.5.x - v0.4.x - v0.3.x or lower diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 63ea268b..3c96598b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -23,7 +23,7 @@ body: label: Is your feature request related to a problem? description: Write a clear and concise description of what the problem is. placeholder: Tell us what the problem is! - value: "I'm always frustrated when..." + value: "I'm having a problem with..." - type: checkboxes id: terms attributes: diff --git a/CHANGELOG.md b/CHANGELOG.md index 61362e9b..fa649530 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [0.6.0] - 2024-02-14 + +This version introduces breaking changes in the configuration file. Please read the [UPGRADING.md](UPGRADING.md) file for more information on how to upgrade from previous versions. + +## Added +- Distributed and fault-tolerant SMTP message queues. +- Distributed rate-limiting and fail2ban. +- Expressions in configuration files. + +### Changed + +### Fixed +- Do not include `STATUS` in IMAP `NOOP` responses (#234). +- Allow multiple SMTP `HELO` commands. +- Redirect OAuth using a `301` instead of a `307` code. + ## [0.5.3] - 2024-01-14 Please read the [UPGRADING.md](UPGRADING.md) file for more information on how to upgrade from previous versions. diff --git a/UPGRADING.md b/UPGRADING.md index 270d50c6..af46e851 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,3 +1,11 @@ +Upgrading from `v0.5.3` to `v0.6.0` +----------------------------------- + +- In order to support [expressions](https://stalw.art/docs/configuration/expressions/overview), version `0.6.0` introduces multiple breaking changes in the SMTP server configuration file. It is recommended to download the new SMTP configuration files from the [repository](https://github.com/stalwartlabs/mail-server/tree/main/resources/config/smtp), make any necessary changes and replace the old files under `INSTALL_DIR/etc/smtp` with the new ones. +- Message queues are now distributed and stored in the backend specified by the `storage.data` and `storage.blob` settings. Make sure to flush your SMTP message queue before upgrading to `0.6.0` to avoid losing any outgoing messages pending delivery. +- Replace the binary with the new version. +- Restart the service. + Upgrading from `v0.5.2` to `v0.5.3` ----------------------------------- diff --git a/crates/smtp/src/core/eval.rs b/crates/smtp/src/core/eval.rs index 1b90750a..f1d6bca6 100644 --- a/crates/smtp/src/core/eval.rs +++ b/crates/smtp/src/core/eval.rs @@ -47,8 +47,10 @@ pub const VARIABLES_MAP: &[(&str, u32)] = &[ pub const FUNCTIONS_MAP: &[(&str, u32, u32)] = &[ ("is_local_domain", F_IS_LOCAL_DOMAIN, 2), + ("is_local_address", F_IS_LOCAL_ADDRESS, 2), ("key_get", F_KEY_GET, 2), ("key_exists", F_KEY_EXISTS, 2), + ("dns_query", F_DNS_QUERY, 2), ]; impl SMTP { diff --git a/crates/smtp/src/reporting/mod.rs b/crates/smtp/src/reporting/mod.rs index b8a194a1..cc834850 100644 --- a/crates/smtp/src/reporting/mod.rs +++ b/crates/smtp/src/reporting/mod.rs @@ -152,7 +152,6 @@ impl SMTP { #[cfg(not(feature = "test_mode"))] { use rand::Rng; - use std::time::Duration; let delivery_time = rand::thread_rng().gen_range(0u64..10800u64); for domain in &mut message.domains { diff --git a/resources/config.zip b/resources/config.zip Binary files differindex a79ac6fb..df6620ee 100644 --- a/resources/config.zip +++ b/resources/config.zip diff --git a/resources/config/smtp/queue.toml b/resources/config/smtp/queue.toml index 84e6f0d6..79f0f4d0 100644 --- a/resources/config/smtp/queue.toml +++ b/resources/config/smtp/queue.toml @@ -2,10 +2,6 @@ # SMTP server queue configuration ############################################# -[queue] -path = "%{BASE_PATH}%/queue" -hash = 64 - [queue.schedule] retry = "[2m, 5m, 10m, 15m, 30m, 1h, 2h]" notify = "[1d, 3d]" diff --git a/resources/config/smtp/report.toml b/resources/config/smtp/report.toml index 34c001ca..21fc16e3 100644 --- a/resources/config/smtp/report.toml +++ b/resources/config/smtp/report.toml @@ -3,8 +3,6 @@ ############################################# [report] -path = "%{BASE_PATH}%/reports" -hash = 64 #submitter = "%{HOST}%" [report.analysis] |