a47ae83
pub mod consumer;
pub mod error;
pub mod events;
pub mod publisher;
pub mod transport;
pub use consumer::EmailConsumer;
pub use error::EmailError;
pub use events::{
Attachment, BatchRecipient, EmailAddress, EmailFailed, EmailSent, RenderAndSendEmailRequest,
SendBatchEmailRequest, SendEmailRequest,
};
pub use publisher::MailPublisher;
pub use transport::{EmailTransport, EmailTransportBuilder, build_message};
pub async fn send_optional(
publisher: Option<&MailPublisher>,
to: &str,
subject: &str,
text: &str,
html: &str,
request_id: Option<&str>,
) -> Result<(), EmailError> {
let Some(publisher) = publisher else {
tracing::warn!(to, "mail publisher disabled; skipping email");
return Ok(());
};
publisher
.send_mail(to, subject, text, html, request_id)
.await
}