mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-11-08 12:51:07 +08:00
v0.11.7
This commit is contained in:
parent
a8bdf3949b
commit
c0fdee6843
23 changed files with 78 additions and 55 deletions
21
CHANGELOG.md
21
CHANGELOG.md
|
|
@ -2,6 +2,27 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
## [0.11.7] - 2025-03-23
|
||||||
|
|
||||||
|
To upgrade replace the `stalwart-mail` binary and then upgrade to the latest web-admin.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- LDAP attribute to indicate password change (#1156).
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Lazy DKIM key parsing (#1211).
|
||||||
|
- Enable `edns0` for system resolver by default (#1282).
|
||||||
|
- Bump FoundationDB to `7.3`.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fix incorrect `UIDNEXT` when mailbox is empty (#1201).
|
||||||
|
- Sender variable not set when evaluating `must-match-sender` (#1294).
|
||||||
|
- Do not panic when mailboxId is not found (#1293).
|
||||||
|
- Prioritize local over span keys when serializing webhook payloads (#1250).
|
||||||
|
- Allow TLS name mismatch as per RFC7671 Section 5.1.
|
||||||
|
- Try with implicit MX when no MX records are found.
|
||||||
|
- SQL `secrets` directory query.
|
||||||
|
|
||||||
## [0.11.5] - 2025-02-01
|
## [0.11.5] - 2025-02-01
|
||||||
|
|
||||||
To upgrade replace the `stalwart-mail` binary and then upgrade to the latest web-admin.
|
To upgrade replace the `stalwart-mail` binary and then upgrade to the latest web-admin.
|
||||||
|
|
|
||||||
40
Cargo.lock
generated
40
Cargo.lock
generated
|
|
@ -1204,7 +1204,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "common"
|
name = "common"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm-siv",
|
"aes-gcm-siv",
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
|
|
@ -1799,7 +1799,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "directory"
|
name = "directory"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"argon2",
|
"argon2",
|
||||||
|
|
@ -2046,7 +2046,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "email"
|
name = "email"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes",
|
"aes",
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
|
|
@ -2163,7 +2163,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "event_macro"
|
name = "event_macro"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|
@ -3281,7 +3281,7 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "imap"
|
name = "imap"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"common",
|
"common",
|
||||||
|
|
@ -3307,7 +3307,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "imap_proto"
|
name = "imap_proto"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|
@ -3532,7 +3532,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jmap"
|
name = "jmap"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"aes-gcm-siv",
|
"aes-gcm-siv",
|
||||||
|
|
@ -3607,7 +3607,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jmap_proto"
|
name = "jmap_proto"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"fast-float",
|
"fast-float",
|
||||||
|
|
@ -3988,7 +3988,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mail-server"
|
name = "mail-server"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"common",
|
"common",
|
||||||
"directory",
|
"directory",
|
||||||
|
|
@ -4008,7 +4008,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "managesieve"
|
name = "managesieve"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
|
@ -4286,7 +4286,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nlp"
|
name = "nlp"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
|
@ -4831,7 +4831,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pop3"
|
name = "pop3"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"common",
|
"common",
|
||||||
"directory",
|
"directory",
|
||||||
|
|
@ -4990,7 +4990,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc_macros"
|
name = "proc_macros"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|
@ -6520,7 +6520,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smtp"
|
name = "smtp"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"bincode",
|
"bincode",
|
||||||
|
|
@ -6609,7 +6609,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "spam-filter"
|
name = "spam-filter"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"common",
|
"common",
|
||||||
"decancer",
|
"decancer",
|
||||||
|
|
@ -6663,7 +6663,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stalwart-cli"
|
name = "stalwart-cli"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"console",
|
"console",
|
||||||
|
|
@ -6694,7 +6694,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "store"
|
name = "store"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"arc-swap",
|
"arc-swap",
|
||||||
|
|
@ -6903,7 +6903,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tests"
|
name = "tests"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
@ -7342,7 +7342,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "trc"
|
name = "trc"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
|
|
@ -7589,7 +7589,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "utils"
|
name = "utils"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash 0.8.11",
|
"ahash 0.8.11",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ authors = ["Stalwart Labs Ltd. <hello@stalw.art>"]
|
||||||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||||
repository = "https://github.com/stalwartlabs/cli"
|
repository = "https://github.com/stalwartlabs/cli"
|
||||||
homepage = "https://github.com/stalwartlabs/cli"
|
homepage = "https://github.com/stalwartlabs/cli"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "common"
|
name = "common"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "directory"
|
name = "directory"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "email"
|
name = "email"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "imap_proto"
|
name = "imap_proto"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "imap"
|
name = "imap"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "jmap_proto"
|
name = "jmap_proto"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "jmap"
|
name = "jmap"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ homepage = "https://stalw.art"
|
||||||
keywords = ["imap", "jmap", "smtp", "email", "mail", "server"]
|
keywords = ["imap", "jmap", "smtp", "email", "mail", "server"]
|
||||||
categories = ["email"]
|
categories = ["email"]
|
||||||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "managesieve"
|
name = "managesieve"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "nlp"
|
name = "nlp"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "pop3"
|
name = "pop3"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ homepage = "https://stalw.art/smtp"
|
||||||
keywords = ["smtp", "email", "mail", "server"]
|
keywords = ["smtp", "email", "mail", "server"]
|
||||||
categories = ["email"]
|
categories = ["email"]
|
||||||
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
license = "AGPL-3.0-only OR LicenseRef-SEL"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "spam-filter"
|
name = "spam-filter"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "store"
|
name = "store"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "trc"
|
name = "trc"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "event_macro"
|
name = "event_macro"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "utils"
|
name = "utils"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "proc_macros"
|
name = "proc_macros"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tests"
|
name = "tests"
|
||||||
version = "0.11.5"
|
version = "0.11.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use directory::{
|
use directory::{
|
||||||
backend::{internal::manage::ManageDirectory, RcptType},
|
QueryBy, ROLE_USER, Type,
|
||||||
QueryBy, Type, ROLE_USER,
|
backend::{RcptType, internal::manage::ManageDirectory},
|
||||||
};
|
};
|
||||||
use mail_send::Credentials;
|
use mail_send::Credentials;
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@ use mail_send::Credentials;
|
||||||
use store::{InMemoryStore, Store};
|
use store::{InMemoryStore, Store};
|
||||||
|
|
||||||
use crate::directory::{
|
use crate::directory::{
|
||||||
map_account_id, map_account_ids, DirectoryTest, IntoTestPrincipal, TestPrincipal,
|
DirectoryTest, IntoTestPrincipal, TestPrincipal, map_account_id, map_account_ids,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::DirectoryStore;
|
use super::DirectoryStore;
|
||||||
|
|
@ -39,7 +39,7 @@ async fn sql_directory() {
|
||||||
let store = DirectoryStore {
|
let store = DirectoryStore {
|
||||||
store: config.stores.stores.remove(directory_id).unwrap(),
|
store: config.stores.stores.remove(directory_id).unwrap(),
|
||||||
};
|
};
|
||||||
let base_store = config.stores.stores.get(directory_id).unwrap();
|
let base_store = &store.store;
|
||||||
let core = config.server;
|
let core = config.server;
|
||||||
|
|
||||||
// Create tables
|
// Create tables
|
||||||
|
|
@ -193,7 +193,8 @@ async fn sql_directory() {
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
assert!(handle
|
assert!(
|
||||||
|
handle
|
||||||
.query(
|
.query(
|
||||||
QueryBy::Credentials(&Credentials::Plain {
|
QueryBy::Credentials(&Credentials::Plain {
|
||||||
username: "bill".to_string(),
|
username: "bill".to_string(),
|
||||||
|
|
@ -203,7 +204,8 @@ async fn sql_directory() {
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.is_none());
|
.is_none()
|
||||||
|
);
|
||||||
|
|
||||||
// Get user by name
|
// Get user by name
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue