Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lettre/lettre
a mailer library for Rust
https://github.com/lettre/lettre
email hacktoberfest mailer mailer-library rust sendmail smtp
Last synced: 5 days ago
JSON representation
a mailer library for Rust
- Host: GitHub
- URL: https://github.com/lettre/lettre
- Owner: lettre
- License: mit
- Created: 2014-02-03T14:31:40.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-09-13T13:48:58.000Z (about 2 months ago)
- Last Synced: 2024-10-08T17:22:47.520Z (26 days ago)
- Topics: email, hacktoberfest, mailer, mailer-library, rust, sendmail, smtp
- Language: Rust
- Homepage: https://lettre.rs
- Size: 9.56 MB
- Stars: 1,830
- Watchers: 16
- Forks: 197
- Open Issues: 67
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-rust-cn - lettre/lettre - library for Rust [<img src="https://api.travis-ci.org/lettre/lettre.svg?branch=master">](https://travis-ci.org/lettre/lettre) (Libraries / Email)
- awesome-rust - lettre/lettre - library for Rust [<img src="https://api.travis-ci.org/lettre/lettre.svg?branch=master">](https://travis-ci.org/lettre/lettre) (Libraries / Email)
- awesome-rust - lettre/lettre - library [![CI](https://github.com/lettre/lettre/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/lettre/lettre/actions/workflows/test.yml) (Libraries / Email)
- awesome-rust-cn - lettre/lettre - (库 Libraries / 电子邮件 Email)
- awesome-opensource-email - lettre - a mailer library for Rust - `MIT`, `Rust` (Code / Library)
- awesome-rust-zh - lettre/lettre - Rust 的 SMTP 库[<img src="https://api.travis-ci.org/lettre/lettre.svg?branch=master">](https://travis-ci.org/lettre/lettre) (库 / 电子邮件)
- awesome-rust - lettre/lettre - an SMTP-library [![CI](https://github.com/lettre/lettre/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/lettre/lettre/actions/workflows/test.yml) (Libraries / Email)
- awesome-rust - lettre/lettre - library for Rust [<img src="https://api.travis-ci.org/lettre/lettre.svg?branch=master">](https://travis-ci.org/lettre/lettre) (库 Libraries / 邮件 Email)
- fucking-awesome-rust - lettre/lettre - an SMTP-library [![CI](https://github.com/lettre/lettre/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/lettre/lettre/actions/workflows/test.yml) (Libraries / Email)
- fucking-awesome-rust - lettre/lettre - an SMTP-library [![CI](https://github.com/lettre/lettre/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/lettre/lettre/actions/workflows/test.yml) (Libraries / Email)
README
lettre
A mailer library for Rust
---
## Features
Lettre provides the following features:
* Multiple transport methods
* Unicode support (for email content and addresses)
* Secure delivery with SMTP using encryption and authentication
* Easy email builders
* Async supportLettre does not provide (for now):
* Email parsing
## Supported Rust Versions
Lettre supports all Rust versions released in the last 6 months. At the time of writing
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.## Example
This library requires Rust 1.70 or newer.
To use this library, add the following to your `Cargo.toml`:```toml
[dependencies]
lettre = "0.11"
``````rust,no_run
use lettre::message::header::ContentType;
use lettre::transport::smtp::authentication::Credentials;
use lettre::{Message, SmtpTransport, Transport};fn main() {
let email = Message::builder()
.from("NoBody ".parse().unwrap())
.reply_to("Yuin ".parse().unwrap())
.to("Hei ".parse().unwrap())
.subject("Happy new year")
.header(ContentType::TEXT_PLAIN)
.body(String::from("Be happy!"))
.unwrap();let creds = Credentials::new("smtp_username".to_owned(), "smtp_password".to_owned());
// Open a remote connection to gmail
let mailer = SmtpTransport::relay("smtp.gmail.com")
.unwrap()
.credentials(creds)
.build();// Send the email
match mailer.send(&email) {
Ok(_) => println!("Email sent successfully!"),
Err(e) => panic!("Could not send email: {e:?}"),
}
}
```## Not sure of which connect options to use?
Clone the lettre git repository and run the following command (replacing `SMTP_HOST` with your SMTP server's hostname)
```shell
cargo run --example autoconfigure SMTP_HOST
```## Testing
The `lettre` tests require an open mail server listening locally on port 2525 and the `sendmail` command. If you have python installed
such a server can be launched with `python -m smtpd -n -c DebuggingServer 127.0.0.1:2525`Alternatively only unit tests can be run by doing `cargo test --lib`.
## Troubleshooting
These are general steps to be followed when troubleshooting SMTP related issues.
- Ensure basic connectivity, ensure requisite ports are open and daemons are listening.
- Confirm that your service provider allows traffic on the ports being used for mail transfer.
- Check SMTP relay authentication and configuration.
- Validate your DNS records. (DMARC, SPF, DKIM, MX)
- Verify your SSL/TLS certificates are setup properly.
- Investigate if filtering, formatting, or filesize limits are causing messages to be lost, delayed, or blocked by relays or remote hosts.## Code of conduct
Anyone who interacts with Lettre in any space, including but not limited to
this GitHub repository, must follow our [code of conduct](https://github.com/lettre/lettre/blob/master/CODE_OF_CONDUCT.md).## License
This program is distributed under the terms of the MIT license.
The builder comes from [emailmessage-rs](https://github.com/katyo/emailmessage-rs) by
Kayo, under MIT license.See [LICENSE](./LICENSE) for details.