mirror of
https://github.com/stalwartlabs/smtp-server.git
synced 2024-11-24 06:19:41 +00:00
v0.6.0
This commit is contained in:
parent
10cfd9b07b
commit
d9fde297f7
5 changed files with 530 additions and 496 deletions
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -2,6 +2,21 @@
|
|||
|
||||
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.
|
||||
|
||||
## [0.5.0] - 2023-12-27
|
||||
|
||||
This version introduces some breaking changes in the configuration file. Please read the [UPGRADING.md](UPGRADING.md) file for more information.
|
||||
|
|
987
Cargo.lock
generated
987
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -7,7 +7,7 @@ homepage = "https://stalw.art/smtp"
|
|||
keywords = ["smtp", "email", "mail", "server"]
|
||||
categories = ["email"]
|
||||
license = "AGPL-3.0-only"
|
||||
version = "0.5.0"
|
||||
version = "0.6.0"
|
||||
edition = "2021"
|
||||
resolver = "2"
|
||||
|
||||
|
|
2
main
2
main
|
@ -1 +1 @@
|
|||
Subproject commit ec077d8796970d2535a08768a431d7cacf21fc39
|
||||
Subproject commit 53f0222f308b3e844c158fc0e603d10361da3c63
|
20
src/main.rs
20
src/main.rs
|
@ -42,7 +42,7 @@ pub const IPC_CHANNEL_BUFFER: usize = 1024;
|
|||
|
||||
#[tokio::main]
|
||||
async fn main() -> std::io::Result<()> {
|
||||
let config = Config::init();
|
||||
let mut config = Config::init();
|
||||
// Enable tracing
|
||||
let _tracer = enable_tracing(
|
||||
&config,
|
||||
|
@ -57,17 +57,25 @@ async fn main() -> std::io::Result<()> {
|
|||
// Bind ports and drop privileges
|
||||
servers.bind(&config);
|
||||
|
||||
// Parse stores and directories
|
||||
// Parse stores
|
||||
let stores = config.parse_stores().await.failed("Invalid configuration");
|
||||
let data_store = stores
|
||||
.get_store(&config, "storage.data")
|
||||
.failed("Invalid configuration");
|
||||
|
||||
// Update configuration
|
||||
config.update(data_store.config_list("").await.failed("Storage error"));
|
||||
|
||||
// Parse directories
|
||||
let directory = config
|
||||
.parse_directory(&stores, config.value("jmap.store.data"))
|
||||
.parse_directory(&stores, data_store)
|
||||
.await
|
||||
.failed("Invalid configuration");
|
||||
let schedulers = config
|
||||
.parse_purge_schedules(
|
||||
&stores,
|
||||
config.value("jmap.store.data"),
|
||||
config.value("jmap.store.blob"),
|
||||
config.value("storage.data"),
|
||||
config.value("storage.blob"),
|
||||
)
|
||||
.await
|
||||
.failed("Invalid configuration");
|
||||
|
@ -98,7 +106,7 @@ async fn main() -> std::io::Result<()> {
|
|||
}
|
||||
ServerProtocol::ManageSieve => {
|
||||
tracing::debug!(
|
||||
"Ignoring ManageSieve server listener, not supported by JMAP-only release."
|
||||
"Ignoring ManageSieve server listener, not supported by SMTP-only release."
|
||||
);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue