diff --git a/src/message/header/content.rs b/src/message/header/content.rs index 2f4b259..028029b 100644 --- a/src/message/header/content.rs +++ b/src/message/header/content.rs @@ -36,7 +36,8 @@ impl Header for ContentTransferEncoding { } fn display(&self) -> HeaderValue { - HeaderValue::new(Self::name(), self.to_string()) + let val = self.to_string(); + HeaderValue::dangerous_new_pre_encoded(Self::name(), val.clone(), val) } } diff --git a/src/message/header/date.rs b/src/message/header/date.rs index 5bd9861..0b56ef1 100644 --- a/src/message/header/date.rs +++ b/src/message/header/date.rs @@ -44,17 +44,17 @@ impl Header for Date { } fn display(&self) -> HeaderValue { - let mut s = self.0.to_string(); - if s.ends_with(" GMT") { + let mut val = self.0.to_string(); + if val.ends_with(" GMT") { // The httpdate crate always appends ` GMT` to the end of the string, // but this is considered an obsolete date format for email // https://tools.ietf.org/html/rfc2822#appendix-A.6.2, // so we replace `GMT` with `-0000` - s.truncate(s.len() - "GMT".len()); - s.push_str("-0000"); + val.truncate(val.len() - "GMT".len()); + val.push_str("-0000"); } - HeaderValue::new(Self::name(), s) + HeaderValue::dangerous_new_pre_encoded(Self::name(), val.clone(), val) } } diff --git a/src/message/header/special.rs b/src/message/header/special.rs index 09c1efb..a05c0e2 100644 --- a/src/message/header/special.rs +++ b/src/message/header/special.rs @@ -51,7 +51,8 @@ impl Header for MimeVersion { } fn display(&self) -> HeaderValue { - HeaderValue::new(Self::name(), format!("{}.{}", self.major, self.minor)) + let val = format!("{}.{}", self.major, self.minor); + HeaderValue::dangerous_new_pre_encoded(Self::name(), val.clone(), val) } }