Sample code for 30+ languages & platforms
Rust

Add a MIME Header Field

See more MIME Examples

Demonstrates the Chilkat Mime.AddHeaderField method, which appends a new header field. The first argument is the field name and the second is the value. Existing fields with the same case-insensitive name are preserved, so this can create duplicates.

Background: MIME headers are ordered name/value lines, and some — Received, for instance — legitimately appear more than once. AddHeaderField is the tool for that: it always appends, never replacing an existing field of the same name. When you instead want exactly one field with a given name, use SetHeaderField, which replaces rather than accumulates.

Chilkat Rust Downloads

Rust

// Demonstrates the Mime.AddHeaderField method, which appends a new header field.  The 1st argument
// is the field name and the 2nd is the value.  Existing fields with the same (case-insensitive)
// name are preserved, so this can create duplicate fields.

let mime = chilkat::Mime::new();

if mime.set_body_from_plain_text("Hello.").is_err() {
    println!("{}", mime.last_error_text());
    return;
}

// Append header fields.  AddHeaderField does not replace existing fields of the same name.
if mime.add_header_field("X-Custom-Header", "value1").is_err() {
    println!("{}", mime.last_error_text());
    return;
}

if mime.add_header_field("X-Priority", "3").is_err() {
    println!("{}", mime.last_error_text());
    return;
}

let Ok(headers) = mime.get_entire_head() else {
    println!("{}", mime.last_error_text());
    return;
};

println!("{}", headers);