Change the mails content types to more closely match what we sent before

This commit is contained in:
Daniel García
2020-05-07 00:50:30 +02:00
parent 4ff15f6dc2
commit 6c5e35ce5c
4 changed files with 30 additions and 19 deletions

View File

@@ -278,17 +278,25 @@ fn send_email(address: &str, subject: &str, body_html: &str, body_text: &str) ->
let address = format!("{}@{}", address_split[1], domain_puny);
let html = SinglePart::builder()
.header(header::ContentType("text/html; charset=utf-8".parse().unwrap()))
.header(header::ContentTransferEncoding::QuotedPrintable)
.body(body_html);
let text = SinglePart::builder()
.header(header::ContentType("text/plain; charset=utf-8".parse().unwrap()))
.header(header::ContentTransferEncoding::QuotedPrintable)
.body(body_text);
let alternative = MultiPart::alternative().singlepart(text).singlepart(html);
let data = MultiPart::mixed()
.multipart(
MultiPart::alternative()
.singlepart(
SinglePart::quoted_printable()
.header(header::ContentType("text/plain; charset=utf-8".parse()?))
.body(body_text),
)
.multipart(
MultiPart::related().singlepart(
SinglePart::quoted_printable()
.header(header::ContentType("text/html; charset=utf-8".parse()?))
.body(body_html),
)
// .singlepart(SinglePart::base64() -- Inline files would go here
),
)
// .singlepart(SinglePart::base64() -- Attachments would go here
;
let email = Message::builder()
.to(Mailbox::new(None, Address::from_str(&address)?))
@@ -297,8 +305,7 @@ fn send_email(address: &str, subject: &str, body_html: &str, body_text: &str) ->
Address::from_str(&CONFIG.smtp_from())?,
))
.subject(subject)
.multipart(alternative)
.map_err(|e| Error::new("Error building email", e.to_string()))?;
.multipart(data)?;
let _ = mailer().send(&email)?;
Ok(())