Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b6cee30ee | ||
|
|
62c16e90ef | ||
|
|
e0494a5f9d | ||
|
|
8c3bffa728 | ||
|
|
47eda90433 | ||
|
|
46ea8c48ac | ||
|
|
5f7063fdc3 | ||
|
|
61c1f6bc6f |
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -75,8 +75,8 @@ jobs:
|
|||||||
rust: stable
|
rust: stable
|
||||||
- name: beta
|
- name: beta
|
||||||
rust: beta
|
rust: beta
|
||||||
- name: 1.65.0
|
- name: '1.70'
|
||||||
rust: 1.65.0
|
rust: '1.70'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|||||||
27
CHANGELOG.md
27
CHANGELOG.md
@@ -1,5 +1,30 @@
|
|||||||
|
<a name="v0.11.2"></a>
|
||||||
|
### v0.11.2 (2023-11-23)
|
||||||
|
|
||||||
|
#### Upgrade notes
|
||||||
|
|
||||||
|
* MSRV is now 1.70 ([#916])
|
||||||
|
|
||||||
|
#### Misc
|
||||||
|
|
||||||
|
* Bump `idna` to v0.5 ([#918])
|
||||||
|
* Bump `boring` and `tokio-boring` to v4 ([#915])
|
||||||
|
|
||||||
|
[#915]: https://github.com/lettre/lettre/pull/915
|
||||||
|
[#916]: https://github.com/lettre/lettre/pull/916
|
||||||
|
[#918]: https://github.com/lettre/lettre/pull/918
|
||||||
|
|
||||||
|
<a name="v0.11.1"></a>
|
||||||
|
### v0.11.1 (2023-10-24)
|
||||||
|
|
||||||
|
#### Bug fixes
|
||||||
|
|
||||||
|
* Fix `webpki-roots` certificate store setup ([#909])
|
||||||
|
|
||||||
|
[#909]: https://github.com/lettre/lettre/pull/909
|
||||||
|
|
||||||
<a name="v0.11.0"></a>
|
<a name="v0.11.0"></a>
|
||||||
### v0.11.0 (2023-08-15)
|
### v0.11.0 (2023-10-15)
|
||||||
|
|
||||||
While this release technically contains breaking changes, we expect most projects
|
While this release technically contains breaking changes, we expect most projects
|
||||||
to be able to upgrade by only bumping the version in `Cargo.toml`.
|
to be able to upgrade by only bumping the version in `Cargo.toml`.
|
||||||
|
|||||||
10
Cargo.toml
10
Cargo.toml
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lettre"
|
name = "lettre"
|
||||||
# remember to update html_root_url and README.md (Cargo.toml example and deps.rs badge)
|
# remember to update html_root_url and README.md (Cargo.toml example and deps.rs badge)
|
||||||
version = "0.11.0"
|
version = "0.11.2"
|
||||||
description = "Email client"
|
description = "Email client"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
homepage = "https://lettre.rs"
|
homepage = "https://lettre.rs"
|
||||||
@@ -11,7 +11,7 @@ authors = ["Alexis Mousset <contact@amousset.me>", "Paolo Barbolini <paolo@paolo
|
|||||||
categories = ["email", "network-programming"]
|
categories = ["email", "network-programming"]
|
||||||
keywords = ["email", "smtp", "mailer", "message", "sendmail"]
|
keywords = ["email", "smtp", "mailer", "message", "sendmail"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.65"
|
rust-version = "1.70"
|
||||||
|
|
||||||
[badges]
|
[badges]
|
||||||
is-it-maintained-issue-resolution = { repository = "lettre/lettre" }
|
is-it-maintained-issue-resolution = { repository = "lettre/lettre" }
|
||||||
@@ -20,7 +20,7 @@ maintenance = { status = "actively-developed" }
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chumsky = "0.9"
|
chumsky = "0.9"
|
||||||
idna = "0.4"
|
idna = "0.5"
|
||||||
once_cell = { version = "1", optional = true }
|
once_cell = { version = "1", optional = true }
|
||||||
tracing = { version = "0.1.16", default-features = false, features = ["std"], optional = true } # feature
|
tracing = { version = "0.1.16", default-features = false, features = ["std"], optional = true } # feature
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ rustls = { version = "0.21", features = ["dangerous_configuration"], optional =
|
|||||||
rustls-pemfile = { version = "1", optional = true }
|
rustls-pemfile = { version = "1", optional = true }
|
||||||
rustls-native-certs = { version = "0.6.2", optional = true }
|
rustls-native-certs = { version = "0.6.2", optional = true }
|
||||||
webpki-roots = { version = "0.25", optional = true }
|
webpki-roots = { version = "0.25", optional = true }
|
||||||
boring = { version = "3", optional = true }
|
boring = { version = "4", optional = true }
|
||||||
|
|
||||||
# async
|
# async
|
||||||
futures-io = { version = "0.3.7", optional = true }
|
futures-io = { version = "0.3.7", optional = true }
|
||||||
@@ -65,7 +65,7 @@ futures-rustls = { version = "0.24", optional = true }
|
|||||||
tokio1_crate = { package = "tokio", version = "1", optional = true }
|
tokio1_crate = { package = "tokio", version = "1", optional = true }
|
||||||
tokio1_native_tls_crate = { package = "tokio-native-tls", version = "0.3", optional = true }
|
tokio1_native_tls_crate = { package = "tokio-native-tls", version = "0.3", optional = true }
|
||||||
tokio1_rustls = { package = "tokio-rustls", version = "0.24", optional = true }
|
tokio1_rustls = { package = "tokio-rustls", version = "0.24", optional = true }
|
||||||
tokio1_boring = { package = "tokio-boring", version = "3", optional = true }
|
tokio1_boring = { package = "tokio-boring", version = "4", optional = true }
|
||||||
|
|
||||||
## dkim
|
## dkim
|
||||||
sha2 = { version = "0.10", optional = true, features = ["oid"] }
|
sha2 = { version = "0.10", optional = true, features = ["oid"] }
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://deps.rs/crate/lettre/0.11.0">
|
<a href="https://deps.rs/crate/lettre/0.11.2">
|
||||||
<img src="https://deps.rs/crate/lettre/0.11.0/status.svg"
|
<img src="https://deps.rs/crate/lettre/0.11.2/status.svg"
|
||||||
alt="dependency status" />
|
alt="dependency status" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -53,12 +53,12 @@ Lettre does not provide (for now):
|
|||||||
## Supported Rust Versions
|
## Supported Rust Versions
|
||||||
|
|
||||||
Lettre supports all Rust versions released in the last 6 months. At the time of writing
|
Lettre supports all Rust versions released in the last 6 months. At the time of writing
|
||||||
the minimum supported Rust version is 1.65, but this could change at any time either from
|
the minimum supported Rust version is 1.70, but this could change at any time either from
|
||||||
one of our dependencies bumping their MSRV or by a new patch release of lettre.
|
one of our dependencies bumping their MSRV or by a new patch release of lettre.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
This library requires Rust 1.65 or newer.
|
This library requires Rust 1.70 or newer.
|
||||||
To use this library, add the following to your `Cargo.toml`:
|
To use this library, add the following to your `Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
//! * Secure defaults
|
//! * Secure defaults
|
||||||
//! * Async support
|
//! * Async support
|
||||||
//!
|
//!
|
||||||
//! Lettre requires Rust 1.65 or newer.
|
//! Lettre requires Rust 1.70 or newer.
|
||||||
//!
|
//!
|
||||||
//! ## Features
|
//! ## Features
|
||||||
//!
|
//!
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
//! [mime 0.3]: https://docs.rs/mime/0.3
|
//! [mime 0.3]: https://docs.rs/mime/0.3
|
||||||
//! [DKIM]: https://datatracker.ietf.org/doc/html/rfc6376
|
//! [DKIM]: https://datatracker.ietf.org/doc/html/rfc6376
|
||||||
|
|
||||||
#![doc(html_root_url = "https://docs.rs/crate/lettre/0.11.0")]
|
#![doc(html_root_url = "https://docs.rs/crate/lettre/0.11.2")]
|
||||||
#![doc(html_favicon_url = "https://lettre.rs/favicon.ico")]
|
#![doc(html_favicon_url = "https://lettre.rs/favicon.ico")]
|
||||||
#![doc(html_logo_url = "https://avatars0.githubusercontent.com/u/15113230?v=4")]
|
#![doc(html_logo_url = "https://avatars0.githubusercontent.com/u/15113230?v=4")]
|
||||||
#![forbid(unsafe_code)]
|
#![forbid(unsafe_code)]
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ pub enum CertificateStore {
|
|||||||
/// Use a hardcoded set of Mozilla roots via the `webpki-roots` crate.
|
/// Use a hardcoded set of Mozilla roots via the `webpki-roots` crate.
|
||||||
///
|
///
|
||||||
/// This option is only available in the rustls backend.
|
/// This option is only available in the rustls backend.
|
||||||
#[cfg(feature = "webpki-roots")]
|
#[cfg(feature = "rustls-tls")]
|
||||||
WebpkiRoots,
|
WebpkiRoots,
|
||||||
/// Don't use any system certificates.
|
/// Don't use any system certificates.
|
||||||
None,
|
None,
|
||||||
@@ -384,9 +384,11 @@ impl TlsParametersBuilder {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "webpki-roots")]
|
#[cfg(feature = "rustls-tls")]
|
||||||
fn load_webpki_roots(store: &mut RootCertStore) {
|
fn load_webpki_roots(store: &mut RootCertStore) {
|
||||||
store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map(|ta| {
|
// TODO: handle this in the rustls 0.22 upgrade
|
||||||
|
#[allow(deprecated)]
|
||||||
|
store.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.iter().map(|ta| {
|
||||||
rustls::OwnedTrustAnchor::from_subject_spki_name_constraints(
|
rustls::OwnedTrustAnchor::from_subject_spki_name_constraints(
|
||||||
ta.subject,
|
ta.subject,
|
||||||
ta.spki,
|
ta.spki,
|
||||||
@@ -399,10 +401,10 @@ impl TlsParametersBuilder {
|
|||||||
CertificateStore::Default => {
|
CertificateStore::Default => {
|
||||||
#[cfg(feature = "rustls-native-certs")]
|
#[cfg(feature = "rustls-native-certs")]
|
||||||
load_native_roots(&mut root_cert_store)?;
|
load_native_roots(&mut root_cert_store)?;
|
||||||
#[cfg(all(not(feature = "rustls-native-certs"), feature = "webpki-roots"))]
|
#[cfg(not(feature = "rustls-native-certs"))]
|
||||||
load_webpki_roots(&mut root_cert_store);
|
load_webpki_roots(&mut root_cert_store);
|
||||||
}
|
}
|
||||||
#[cfg(feature = "webpki-roots")]
|
#[cfg(feature = "rustls-tls")]
|
||||||
CertificateStore::WebpkiRoots => {
|
CertificateStore::WebpkiRoots => {
|
||||||
load_webpki_roots(&mut root_cert_store);
|
load_webpki_roots(&mut root_cert_store);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user