1use schemars::JsonSchema;
2use serde::Deserialize;
3use spring::config::Configurable;
4
5spring::submit_config_schema!("mail", MailerConfig);
6
7#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
9#[config_prefix = "mail"]
10pub struct MailerConfig {
11 #[serde(flatten)]
13 pub transport: Option<SmtpTransportConfig>,
14 pub uri: Option<String>,
16 #[serde(default = "bool::default")]
18 pub test_connection: bool,
19 #[serde(default = "bool::default")]
22 pub stub: bool,
23}
24
25#[derive(Debug, Clone, JsonSchema, Deserialize)]
26pub struct SmtpTransportConfig {
27 pub host: String,
29 pub port: u16,
31 #[serde(default = "bool::default")]
33 pub secure: bool,
34 pub auth: Option<MailerAuth>,
36}
37
38#[derive(Debug, Clone, JsonSchema, Deserialize)]
40pub struct MailerAuth {
41 pub user: String,
43 pub password: String,
45}