send plain-text in email along with html (#2107)
* send plain text in email along with html * format the code using "cargo +nightly fmt" Co-authored-by: kittiphat-kang <kittiphat.nu@easysunday.com>
This commit is contained in:
parent
9f5183fe98
commit
348077c3de
3 changed files with 25 additions and 2 deletions
18
Cargo.lock
generated
18
Cargo.lock
generated
|
@ -1493,6 +1493,17 @@ dependencies = [
|
||||||
"regex",
|
"regex",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "html2text"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a26379dcb715e237b96102a12b505c553e2bffa74bae2e54658748d298660ef1"
|
||||||
|
dependencies = [
|
||||||
|
"html5ever",
|
||||||
|
"markup5ever_rcdom",
|
||||||
|
"unicode-width",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "html5ever"
|
name = "html5ever"
|
||||||
version = "0.25.1"
|
version = "0.25.1"
|
||||||
|
@ -2122,6 +2133,7 @@ dependencies = [
|
||||||
"doku",
|
"doku",
|
||||||
"encoding",
|
"encoding",
|
||||||
"futures",
|
"futures",
|
||||||
|
"html2text",
|
||||||
"http",
|
"http",
|
||||||
"itertools",
|
"itertools",
|
||||||
"jsonwebtoken",
|
"jsonwebtoken",
|
||||||
|
@ -4265,6 +4277,12 @@ version = "1.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
|
checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-width"
|
||||||
|
version = "0.1.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-xid"
|
name = "unicode-xid"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
|
@ -46,3 +46,4 @@ jsonwebtoken = "7.2.0"
|
||||||
doku = "0.10.2"
|
doku = "0.10.2"
|
||||||
uuid = { version = "0.8.2", features = ["serde", "v4"] }
|
uuid = { version = "0.8.2", features = ["serde", "v4"] }
|
||||||
encoding = "0.2.33"
|
encoding = "0.2.33"
|
||||||
|
html2text = "0.2.1"
|
|
@ -1,4 +1,5 @@
|
||||||
use crate::{settings::structs::Settings, LemmyError};
|
use crate::{settings::structs::Settings, LemmyError};
|
||||||
|
use html2text;
|
||||||
use lettre::{
|
use lettre::{
|
||||||
message::{header, Mailbox, MultiPart, SinglePart},
|
message::{header, Mailbox, MultiPart, SinglePart},
|
||||||
transport::smtp::{authentication::Credentials, extension::ClientId},
|
transport::smtp::{authentication::Credentials, extension::ClientId},
|
||||||
|
@ -39,6 +40,9 @@ pub fn send_email(
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// the message length before wrap, 78, is somewhat arbritary but looks good to me
|
||||||
|
let plain_text = html2text::from_read(html.as_bytes(), 78);
|
||||||
|
|
||||||
let email = Message::builder()
|
let email = Message::builder()
|
||||||
.from(
|
.from(
|
||||||
email_config
|
email_config
|
||||||
|
@ -58,7 +62,7 @@ pub fn send_email(
|
||||||
.singlepart(
|
.singlepart(
|
||||||
SinglePart::builder()
|
SinglePart::builder()
|
||||||
.header(header::ContentType::TEXT_PLAIN)
|
.header(header::ContentType::TEXT_PLAIN)
|
||||||
.body(html.to_string()),
|
.body(plain_text),
|
||||||
)
|
)
|
||||||
.multipart(
|
.multipart(
|
||||||
MultiPart::related().singlepart(
|
MultiPart::related().singlepart(
|
||||||
|
|
Loading…
Reference in a new issue