Sample code for 30+ languages & platforms
Rust Requires Chilkat v11.0.0+

Parsing a Multipart/Digest Email

See more Email Object Examples

This example demonstrates how to parse a multipart/digest email. An email parsed by this sample could have a MIME structure as follows:
multipart/mixed
    text/plain
    text/plain
    multipart/digest
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
    text/plain

Chilkat Rust Downloads

Rust

let eml_path = "qa_data/eml/multipart_digest.eml".to_string();

let email = chilkat::Email::new();

// For this example, we'll load the email from a .eml.
// The email could alternatively be loaded as a result of downloading from an IMAP or POP3 server..

if email.load_eml(&eml_path).is_err() {
    println!("{}", email.last_error_text());
    return;
}

let num_digests = email.num_digests();
println!("num digests = {}", num_digests);

let e_digest = chilkat::Email::new();
let mut i = 0;
while i < num_digests {
    let _ = email.get_digest_email(i, &e_digest);
    println!("{}:{}, {}", i, e_digest.from_address(), e_digest.subject());
    if let Ok(m) = e_digest.get_header_field("Message") {
        println!("    Message = {}", m);
    }

    i = i + 1;
}