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}