- Add raw header setter to
MessageBuilder(#1108)
- Allow inline attachments to be named (#1101)
- Upgrade
socket2to v0.6 (#1098)
- Add support for
rustls-platform-verifier(#1081)
- Change readme example to use
Mailbox::newinstead of string parsing (#1090) - Replace futures-util
Mutexwith stdMutexinAsyncStubTransport(#1091) - Avoid duplicate
abort_concurrentimplementation (#1092)
- Always implement
CloneforAsyncFileTransport(#1075)
Tls,CertificateStore,TlsParameters,TlsParametersBuilder,CertificateandIdentityare now marked as deprecated when no TLS backend is enabled. They will be properly feature gated in lettre v0.12 (#1084)
- Gate
web-timebehindcfg(target_arch = "wasm32")](#1086) - Add missing
#[doc(cfg(...))]attributes (#1086) - Upgrade
webpki-rootsto v1 (#1088) - Cleanup internal
TlsParametersand(Async)NetworkStreamstructures (#1082) - Feature gate internal
TransportBuilder::tlsto avoid recursive call site warnings (#1083) - Fix workaround for embedding cargo script in rustdoc output (#1077)
- Fix
clippy::io_other_errorwarnings (#1078) - Upgrade semver compatible dependencies (#1076, #1079, #1080)
- MSRV is now 1.74 (#1060)
- Deny
unreachable_publint (#1058) - Bump minimum supported
rustls(#1063) - Bump minimum supported
serde(#1064) - Upgrade semver compatible dependencies (#1067)
- Upgrade
email-encodingto v0.4 (#1069)
This release deprecates the rustls-tls, tokio1-rustls-tls and async-std1-rustls-tls
features, which will be removed in lettre v0.12.
rustls users should start migrating to the rustls, tokio1-rustls and
async-std1-rustls features. Unlike the deprecated *rustls-tls features,
which automatically enabled the ring and webpki-roots backends, the new
features do not. To complete the migration, users must either enable the
aws-lc-rs or the ring feature. Additionally, those who rely on webpki-roots
for TLS certificate verification must now explicitly enable its feature.
Users of rustls-native-certs do not need to enable webpki-roots.
Find out more about the new features via the lettre rustls docs.
- Make it possible to use different
rustlscrypto providers and TLS verifiers (#1054)
- Use the same
rustlscrypto provider everywhere (#1055)
- Deprecate
AsyncNetworkStreambeing public (#1059) - Upgrade
nomto v8 (#1048) - Drop
rustls-pemfilein favor ofrustls-pki-typesAPIs (#1050) - Ban direct use of
std::time::SystemTime::nowvia clippy (#1043) - Drop direct dependency on
rustls-pki-types(#1051) - Remove artifact from
web-timerefactor (#1049) - Fix warnings with
rustls-native-certswhentracingis disabled (#1053) - Bump license year (#1057)
- Cleanup
Cargo.tomlstyle (#1047)
- Synchronous pool shutdowns being arbitrarily delayed (#1041)
- Warn against manually configuring
portandtlson SMTP transport builder (#1014) - Document variants of
Tlsenum (#1015) - Fix rustdoc warnings (#1016)
- Add
ContentType::TEXT_PLAINtoMessagebuilder examples (#1017) - Document
SmtpTransportandAsyncSmtpTransport(#1018) - Fix typo in transport builder
credentialsmethod (#1019) - Document required system dependencies for OpenSSL (#1030)
- Improve docs for the
transport::smtpmodule (#1031) - Improve docs for smtp transport builder
from_url(#1032) - Replace
assert!with?onsendexamples (#1033) - Warn on more pedantic clippy lints and fix them (#1035, #1036)
- MSRV is now 1.71 (#1008)
- Fix off-by-one error reaching the minimum number of configured pooled connections (#1012)
- Ignore disconnect errors when
poolfeature of SMTP transport is disabled (#999) - Use case insensitive comparisons for matching login challenge requests (#1000)
- Fix feature gate for
accept_invalid_hostnamesfor rustls (#988) - Fix parsing
Mailboxwith trailing spaces (#986)
- Add mTLS support (#974)
- Implement
accept_invalid_hostnamesfor rustls (#977) - Provide certificate chain for peer certificates when using
rustlsorboring-tls(#976)
- Make
HeaderNamecomparisons viaPartialEqcase insensitive (#980)
- Fix clippy warnings ([#979])
- Replace manual impl of
#[non_exhaustive]forInvalidHeaderName(#981)
- Bump
hostnameto v0.4 (#956) - Fix
tracingmessage consistency (#960) - Bump minimum required
rustlsto v0.23.5 (#958) - Dropped use of
refsyntax in the entire project (#959)
- Upgraded
email-encodingto v0.3 - fixing multiple encoding bugs in the process (#952)
- Updated copyright year in license (#954)
- Support SMTP SASL draft login challenge (#911)
- Add conversion from SMTP response code to integer (#941)
- Upgrade
rustlsto v0.23 (#950) - Bump
base64to v0.22 (#945) - Fix typos in documentation (#943, #944)
- Add
Cargo.lock(#942)
- Percent decode credentials in SMTP connect URL (#932, #934)
- Fix mimebody DKIM body-hash computation (#923)
- MSRV is now 1.70 (#916)
- Fix
webpki-rootscertificate store setup (#909)
While this release technically contains breaking changes, we expect most projects
to be able to upgrade by only bumping the version in Cargo.toml.
- Improve mailbox parsing (#839)
- Add construction of SMTP transport from URL (#901)
- Add
From<Address>implementation forMailbox(#879)
- Bump
socket2to v0.5 (#868) - Bump
idnato v0.4,fastrandto v2,quoted_printableto v0.5,rsato v0.9 (#882) - Bump
webpki-rootsto v0.25 (#884 and #890) - Bump
ed25519-dalekto v2 fixing RUSTSEC-2022-0093 (#896) - Bump
boringssl crates to v3 (#897)
- Bumped rustls to 0.21 and all related dependencies (#867)
It was found that what had been used until now as a basic lettre 0.10
MessageBuilder::body example failed to mention that for maximum
compatibility with various email clients a Content-Type header
should always be present in the message.
Message::builder()
// [...] some headers skipped for brevity
.body(String::from("A plaintext or html body"))? Message::builder()
// [...] some headers skipped for brevity
+ .header(ContentType::TEXT_PLAIN) // or `TEXT_HTML` if the body is html
.body(String::from("A plaintext or html body"))?- Add support for rustls-native-certs when using rustls (#843)
- MSRV is now 1.60 (#828)
- Allow providing a custom
tokiostream forAsyncSmtpTransport(#805) - Return whole SMTP error message (#821)
- Mailbox displays wrongly when containing a comma and a non-ascii char in its name (#827)
- Require
quoted_printable^0.4.6 in order to fix encoding of tabs and spaces at the end of line (#837)
- Increase tracing (#848)
- Bump
idnato 0.3 (#816) - Update
base64to 0.21 (#840 and #851) - Update
rsato 0.8 (#829 and #852)
- Add
boring-tlssupport forSmtpTransportandAsyncSmtpTransport. The latter is only supported with the tokio runtime. (#797) (#798) - Make the minimum TLS version configurable. (#799) (#800)
Several breaking changes were made between 0.9 and 0.10, but changes should be straightforward:
- MSRV is now 1.56.0
- The
lettre_emailcrate has been merged intolettre. To migrate, replacelettre_emailwithlettre::messageand make sure to enable thebuilderfeature (it's enabled by default). SendableEmailhas been renamed toEmailandEmailBuilder::build()produces it directly. To migrate, renameSendableEmailtoEmail.- The
serde-implsfeature has been renamed toserde. To migrate, rename the feature.
- Add
tokio1 support - Add
rustlssupport - Add
async-stdsupport. NOTE: native-tls isn't supported when using async-std for the smtp transport. - Allow enabling multiple SMTP authentication mechanisms
- Allow providing a custom message id
- Allow sending raw emails
- Merge
lettre_emailintolettre - Merge
EmailandSendableEmailintolettre::message::Email - SmtpTransport is now an high level SMTP client. It provides connection pooling and shortcuts for building clients using commonly desired values
- Refactor
TlsParametersimplementation to not expose the internal TLS library FileTransportwrites emails into.emlinstead of.json- When the hostname feature is disabled or hostname cannot be fetched,
127.0.0.1is used instead oflocalhostas EHLO parameter (for better RFC compliance and mail server compatibility) - The
sendmailandfiletransports aren't enabled by default anymore. - The
newmethod ofClientIdis deprecated - Rename
serde-implsfeature toserde - The
SendmailTransportnow uses thesendmailcommand in currentPATHby default instead of/usr/bin/sendmail.
- Fix argument injection in
SendmailTransport(see RUSTSEC-2020-0069) - Correctly encode header values containing non-ASCII characters
- Timeout bug causing infinite hang
- Fix doc tests in website
- Fix docs for
domainfield
- Improve documentation, examples and tests
- Replace
line-wrap,email,bufstreamwith our own implementations - Remove
bytes - Remove
time - Remove
fast_chemail - Update
base64to 0.13 - Update
hostnameto 0.3 - Update to
nom6 - Replace
logwithtracing - Move CI to GitHub Actions
- Use criterion for benchmarks
- email:
- Fix compilation with Rust 1.36+ (393ef8d)
- email:
- Re-export mime crate (a0c8fb9)
-
email:
-
transport:
-
all:
- Update dependencies
- Start using the failure crate for errors (c10fe3d)
-
transport:
- Remove TLS 1.1 in accepted protocols by default (only allow TLS 1.2) (4b48bdb)
- Initial support for XOAUTH2 (ed7c164)
- Remove support for CRAM-MD5 (bc09aa2)
- SMTP connection pool implementation with r2d2 (434654e)
- Use md-5 and hmac instead of rust-crypto (e7e0f34)
- Gmail transport simple example (a8d8e2a)
-
email:
- transport: Write timeout is not set in smtp transport (cc3580a8)
- all: Fix typos (360c42ff)
- all:
- Add set -xe option to build scripts (57bbabaa)
- Move post-success scripts to separate files (3177b58c)
- Add website upload to travis build script (a5294df6)
- Add codecov upload in travis (a03bfa00)
- Update README to put useful links at the top (1ebbe660)
- Update badges in README and Cargo.toml (f7ee5c42)
- Move docs from hugo to gitbook (27935e32)
- transport: Use md-5 and hmac instead of rust-crypto (0cf018a8)
- all:
- Replace skeptic by some custom rustdoc invocations (81bad131)
- all:
- transport-smtp: Avoid useless empty format strings (f3271715)
- Support binary files as attachment
- Move doc to a dedicated website
- Add tests for the doc using skeptic
- Added a code of conduct
- Use hostname as
ClientIdwhen available
- Detail in SMTP Response is now an enum
- Use nom for parsing smtp responses
Envelopewas moved fromlettre_emailtolettreEmailAddress::new()now returns aResultSendableEmailreplacesfromandtobyenvelopethat returns anEnvelopeFiletransport storage format has changed
- Add missing "Bcc" headers when building the email
- Specify utf-8 charset for html
- Use parts for text and html methods to work with attachments
get_ehloandresetin SmtpTransport are now private
- Allow validating server certificate
- Initial (incomplete) attachments support
- Split into the lettre and lettre_email crates
- A lot of small improvements
- Use tls-native instead of openssl in smtp transport
- Update env-logger crate to 0.4
- Update openssl crate to 0.9
- Update uuid crate to 0.4
- documentation
- #91: Build separate docs for each release
- #96: Add complete documentation information to README
- #85: Use address-list for "To", "From" etc.
- #93: Force building tests before coverage computing
- multipart support
- add non-consuming methods for Email builders
add_headerdoes not return the builder anymore, for consistency with other methods. Use theheadermethod instead