#[derive(Debug, Clone, PartialEq, Eq)]
pub enum TlsMode {
Implicit,
Starttls,
}
#[derive(Debug, Clone)]
pub struct SmtpConfig {
pub host: String,
pub port: u16,
pub ehlo_domain: String,
pub tls_mode: TlsMode,
}
#[derive(Clone)]
pub struct SmtpCredentials {
pub username: String,
pub password: String,
}
impl core::fmt::Debug for SmtpCredentials {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.debug_struct("SmtpCredentials")
.field("username", &self.username)
.field("password", &"[REDACTED]")
.finish()
}
}
#[derive(Debug, Clone)]
pub struct SmtpMessage {
pub from: String,
pub to: Vec<String>,
pub raw_message: String,
}
#[derive(Debug, Clone)]
pub struct SendResult {
pub reply_code: u16,
}
#[derive(Debug, Clone)]
pub enum SendError {
Io(String),
Protocol(String),
AuthRejected,
InvalidInput(String),
PolicyRejected(String),
}