scufflecloud_email/email_builder.rs
1use ext_traits::{OptionExt, ResultExt};
2use mail_builder::headers::address::Address;
3
4pub(crate) fn build_raw_email(
5 send_request: pb::scufflecloud::email::v1::SendEmailRequest,
6) -> Result<Vec<u8>, tonic::Status> {
7 let from = send_request.from.require("from")?;
8 let to = send_request.to.require("to")?;
9
10 mail_builder::MessageBuilder::new()
11 .from(Address::new_address(from.name, from.address))
12 .to(Address::new_address(to.name, to.address))
13 .subject(send_request.subject)
14 .text_body(send_request.text)
15 .html_body(send_request.html)
16 .write_to_vec()
17 .into_tonic_internal_err("failed to build raw email")
18}