Announcing lettre 0.10

We are pleased to announce the release of the (long awaited) 0.10 version of lettre, an email client for the Rust programming language. lettre allows sending emails from Rust applications, focusing on ease of use, secure defaults and modern features (like support for full internationalization). It does not aim at implementing email RFCs extensively, but only what is necessary for our needs.

lettre provides a type-safe email builder, several transports, TLS support with rustls and native-tls and async support with tokio and async-std.

lettre is now used by many projects, including crates.io itself!

Changes

Since the 0.9 release in March 2019, more than three years ago, a lot of changes have been made. Key improvements are:

New message builder

The message implementation has been completely replaced. The goal was to provide correct encoding and powerful multipart features.

The message implementation, previously in the lettre_email crate, has been merged into lettre.

DKIM support

It is now possible to sign emails using DKIM.

Async support

Transports now have async-std and tokio support for async email sending.

Features and dependencies

We added a lot of control over which features can be enabled.

rustls support

In addition to native-tls, lettre now supports rustls for encrypted SMTP connections.

File transport

The file transport allows storing emails to disk, and now uses the standard .eml format instead of json. This format stores the email with the original headers and body, and can be read by standard email applications like Thunderbird. .eml files can also be read back, making it possible to send them later.

Miscellaneous

Read the change log for more details.

Upgrading

0.10 has counted 5 alpha, 4 beta and 7 rc releases since May 2020, and is already widely used. Upgrade from 0.9 should be pretty straightforward (except for complex MIME messages).

To migrate, update your Cargo.toml to:

[dependencies]
lettre = "0.10.0"

Migration notes:

If you need help or advice, please take a look at the examples or start a discussion in the repository.

Community

The 0.10 release was more specifically made possible by the involvement of paolobarbolini, who joined the maintainer team and now leads the project. In particular, issue and pull requests response times have been considerably lowered, making lettre a more welcoming project for users and contributors.

Special thanks to all contributor to this release since 0.9, in particular: