use candid::{CandidType, Deserialize};
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct Header {
pub name: String,
pub value: String,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct Message {
pub headers: Vec<Header>,
pub body: Vec<u8>,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct Address {
pub user: String,
pub domain: String,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct Envelope {
pub from: Address,
pub to: Vec<Address>,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct SmtpRequest {
pub message: Option<Message>,
pub envelope: Option<Envelope>,
pub gateway_flags: Option<Vec<String>>,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct SmtpRequestError {
pub code: u64,
pub message: String,
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub enum SmtpResponse {
Ok(SmtpOk),
Err(SmtpRequestError),
}
#[derive(Clone, Debug, CandidType, Deserialize, Eq, PartialEq)]
pub struct SmtpOk {}