summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.yml1
-rw-r--r--.github/ISSUE_TEMPLATE/feature_request.yml2
-rw-r--r--CHANGELOG.md16
-rw-r--r--UPGRADING.md8
-rw-r--r--crates/smtp/src/core/eval.rs2
-rw-r--r--crates/smtp/src/reporting/mod.rs1
-rw-r--r--resources/config.zipbin171400 -> 171355 bytes
-rw-r--r--resources/config/smtp/queue.toml4
-rw-r--r--resources/config/smtp/report.toml2
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
index a79ac6fb..df6620ee 100644
--- a/resources/config.zip
+++ b/resources/config.zip
Binary files differ
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]