Movatterモバイル変換


[0]ホーム

URL:


Docs.rs

Cratemail_send

Source
Expand description

§mail-send

crates.iobuilddocs.rscrates.io

mail-send is a Rust library to build, sign and send e-mail messages via SMTP. It includes the following features:

  • Generatese-mail messages conforming to the Internet Message Format standard (RFC 5322).
  • FullMIME support (RFC 2045 - 2049) with automatic selection of the most optimal encoding for each message body part.
  • DomainKeys Identified Mail (DKIM) Signatures (RFC 6376) with ED25519-SHA256, RSA-SHA256 and RSA-SHA1 support.
  • Simple Mail Transfer Protocol (SMTP;RFC 5321) delivery.
  • SMTP Service Extension for Secure SMTP overTLS (RFC 3207).
  • SMTP Service Extension for Authentication (RFC 4954) with automatic mechanism negotiation (from most secure to least secure):
    • CRAM-MD5 (RFC 2195)
    • DIGEST-MD5 (RFC 2831; obsolete but still supported)
    • XOAUTH2 (Google proprietary)
    • LOGIN
    • PLAIN
  • Full async (requires Tokio).

§Usage Example

Send a message via an SMTP server that requires authentication:

// Build a simple multipart messageletmessage = MessageBuilder::new()        .from(("John Doe","john@example.com"))        .to(vec![            ("Jane Doe","jane@example.com"),            ("James Smith","james@test.com"),        ])        .subject("Hi!")        .html_body("<h1>Hello, world!</h1>")        .text_body("Hello world!");// Connect to the SMTP submissions port, upgrade to TLS and    // authenticate using the provided credentials.SmtpClientBuilder::new("smtp.gmail.com",587)        .implicit_tls(false)        .credentials(("john","p4ssw0rd"))        .connect()        .await.unwrap()        .send(message)        .await.unwrap();

Sign a message with DKIM and send it via an SMTP relay server:

// Build a simple text message with a single attachmentletmessage = MessageBuilder::new()        .from(("John Doe","john@example.com"))        .to("jane@example.com")        .subject("Howdy!")        .text_body("These pretzels are making me thirsty.")        .attachment("image/png","pretzels.png", [1,2,3,4].as_ref());// Sign an e-mail message using RSA-SHA256letpk_rsa = RsaKey::<Sha256>::from_rsa_pem(TEST_KEY).unwrap();letsigner = DkimSigner::from_key(pk_rsa)        .domain("example.com")        .selector("default")        .headers(["From","To","Subject"])        .expiration(60*60*7);// Number of seconds before this signature expires (optional)    // Connect to an SMTP relay server over TLS.    // Signs each message with the configured DKIM signer.SmtpClientBuilder::new("smtp.gmail.com",465)        .connect()        .await.unwrap()        .send_signed(message,&signer)        .await.unwrap();

More examples of how to build messages are available in themail-builder crate.Please note that this library does not support parsing e-mail messages as this functionality is provided separately by themail-parser crate.

§Testing

To run the testsuite:

 $ cargo test --all-features

or, to run the testsuite with MIRI:

 $ cargo +nightly miri test --all-features

§License

Licensed under either of

at your option.

§Copyright

Copyright (C) 2020-2022, Stalwart Labs Ltd.

SeeCOPYING for the license.

Re-exports§

pub usemail_builder;
pub usemail_auth;

Modules§

smtp

Structs§

SmtpClient
SMTP client builder
SmtpClientBuilder
SMTP client builder

Enums§

Credentials
Error

Type Aliases§

Result

[8]ページ先頭

©2009-2025 Movatter.jp