Store main part of the message outside of "parts" vector

This commit is contained in:
Alexander Krotov
2020-01-20 22:54:26 +03:00
parent adcdae4abe
commit 64026fde7c

View File

@@ -815,9 +815,10 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
);
// Message is sent as text/plain, with charset = utf-8
let mut parts = vec![PartBuilder::new()
let main_part = PartBuilder::new()
.content_type(&mime::TEXT_PLAIN_UTF_8)
.body(message_text)];
.body(message_text);
let mut parts = Vec::new();
// add attachment part
if chat::msgtype_has_file(self.msg.viewtype) {
@@ -880,18 +881,18 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
}
}
// Single part, render as regular message.
if parts.len() == 1 {
return Ok(parts.pop().unwrap());
if parts.is_empty() {
// Single part, render as regular message.
Ok(main_part)
} else {
// Multiple parts, render as multipart.
let mut message = PartBuilder::new().message_type(MimeMultipartType::Mixed);
message = message.child(main_part.build());
for part in parts.into_iter() {
message = message.child(part.build());
}
Ok(message)
}
// Multiple parts, render as multipart.
let mut message = PartBuilder::new().message_type(MimeMultipartType::Mixed);
for part in parts.into_iter() {
message = message.child(part.build());
}
Ok(message)
}
/// Render an MDN