email_encoding::headers::rfc2231

Function encode

Source
pub fn encode(key: &str, value: &str, w: &mut EmailWriter<'_>) -> Result
Expand description

Encode a string via RFC 2231.

§Examples

{
    let input = "invoice.pdf";

    let mut output = String::new();
    {
        let mut writer = EmailWriter::new(&mut output, 0, 0, false, false);
        email_encoding::headers::rfc2231::encode("filename", input, &mut writer)?;
    }
    assert_eq!(output, "filename=\"invoice.pdf\"");
}

{
    let input = "invoice_2022_06_04_letshaveaverylongfilenamewhynotemailcanhandleit.pdf";

    let mut output = String::new();
    {
        let mut writer = EmailWriter::new(&mut output, 0, 0, false, false);
        email_encoding::headers::rfc2231::encode("filename", input, &mut writer)?;
    }
    assert_eq!(
        output,
        concat!(
            "\r\n",
            " filename*0=\"invoice_2022_06_04_letshaveaverylongfilenamewhynotemailcanha\";\r\n",
            " filename*1=\"ndleit.pdf\""
        )
    );
}

{
    let input = "faktúra.pdf";

    let mut output = String::new();
    {
        let mut writer = EmailWriter::new(&mut output, 0, 0, false, false);
        email_encoding::headers::rfc2231::encode("filename", input, &mut writer)?;
    }
    assert_eq!(
        output,
        concat!(
            "\r\n",
            " filename*0*=utf-8''fakt%C3%BAra.pdf"
        )
    );
}