mirror of
https://github.com/chatmail/core.git
synced 2026-05-05 22:36:30 +03:00
Add certificate check configuration options
This commit is contained in:
@@ -19,10 +19,12 @@ pub enum Config {
|
|||||||
MailUser,
|
MailUser,
|
||||||
MailPw,
|
MailPw,
|
||||||
MailPort,
|
MailPort,
|
||||||
|
MailCertificateChecks,
|
||||||
SendServer,
|
SendServer,
|
||||||
SendUser,
|
SendUser,
|
||||||
SendPw,
|
SendPw,
|
||||||
SendPort,
|
SendPort,
|
||||||
|
SendCertificateChecks,
|
||||||
ServerFlags,
|
ServerFlags,
|
||||||
#[strum(props(default = "INBOX"))]
|
#[strum(props(default = "INBOX"))]
|
||||||
ImapFolder,
|
ImapFolder,
|
||||||
@@ -52,10 +54,12 @@ pub enum Config {
|
|||||||
ConfiguredMailPw,
|
ConfiguredMailPw,
|
||||||
ConfiguredMailPort,
|
ConfiguredMailPort,
|
||||||
ConfiguredMailSecurity,
|
ConfiguredMailSecurity,
|
||||||
|
ConfiguredMailCertificateChecks,
|
||||||
ConfiguredSendServer,
|
ConfiguredSendServer,
|
||||||
ConfiguredSendUser,
|
ConfiguredSendUser,
|
||||||
ConfiguredSendPw,
|
ConfiguredSendPw,
|
||||||
ConfiguredSendPort,
|
ConfiguredSendPort,
|
||||||
|
ConfiguredSendCertificateChecks,
|
||||||
ConfiguredServerFlags,
|
ConfiguredServerFlags,
|
||||||
ConfiguredSendSecurity,
|
ConfiguredSendSecurity,
|
||||||
ConfiguredE2EEEnabled,
|
ConfiguredE2EEEnabled,
|
||||||
|
|||||||
@@ -4,6 +4,20 @@ use std::fmt;
|
|||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
|
|
||||||
|
#[derive(Debug, FromPrimitive)]
|
||||||
|
#[repr(i32)]
|
||||||
|
pub enum CertificateChecks {
|
||||||
|
Strict,
|
||||||
|
AcceptInvalidHostnames,
|
||||||
|
AcceptInvalidCertificates,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for CertificateChecks {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::AcceptInvalidCertificates
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Default, Debug)]
|
#[derive(Default, Debug)]
|
||||||
pub struct LoginParam {
|
pub struct LoginParam {
|
||||||
pub addr: String,
|
pub addr: String,
|
||||||
@@ -11,10 +25,14 @@ pub struct LoginParam {
|
|||||||
pub mail_user: String,
|
pub mail_user: String,
|
||||||
pub mail_pw: String,
|
pub mail_pw: String,
|
||||||
pub mail_port: i32,
|
pub mail_port: i32,
|
||||||
|
/// IMAP TLS options: whether to allow invalid certificates and/or invalid hostnames
|
||||||
|
pub mail_certificate_checks: CertificateChecks,
|
||||||
pub send_server: String,
|
pub send_server: String,
|
||||||
pub send_user: String,
|
pub send_user: String,
|
||||||
pub send_pw: String,
|
pub send_pw: String,
|
||||||
pub send_port: i32,
|
pub send_port: i32,
|
||||||
|
/// SMTP TLS options: whether to allow invalid certificates and/or invalid hostnames
|
||||||
|
pub send_certificate_checks: CertificateChecks,
|
||||||
pub server_flags: i32,
|
pub server_flags: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,6 +66,14 @@ impl LoginParam {
|
|||||||
let key = format!("{}mail_pw", prefix);
|
let key = format!("{}mail_pw", prefix);
|
||||||
let mail_pw = sql.get_config(context, key).unwrap_or_default();
|
let mail_pw = sql.get_config(context, key).unwrap_or_default();
|
||||||
|
|
||||||
|
let key = format!("{}mail_certificate_checks", prefix);
|
||||||
|
let mail_certificate_checks =
|
||||||
|
if let Some(certificate_checks) = sql.get_config_int(context, key) {
|
||||||
|
num_traits::FromPrimitive::from_i32(certificate_checks).unwrap_or_default()
|
||||||
|
} else {
|
||||||
|
Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
let key = format!("{}send_server", prefix);
|
let key = format!("{}send_server", prefix);
|
||||||
let send_server = sql.get_config(context, key).unwrap_or_default();
|
let send_server = sql.get_config(context, key).unwrap_or_default();
|
||||||
|
|
||||||
@@ -60,6 +86,14 @@ impl LoginParam {
|
|||||||
let key = format!("{}send_pw", prefix);
|
let key = format!("{}send_pw", prefix);
|
||||||
let send_pw = sql.get_config(context, key).unwrap_or_default();
|
let send_pw = sql.get_config(context, key).unwrap_or_default();
|
||||||
|
|
||||||
|
let key = format!("{}send_certificate_checks", prefix);
|
||||||
|
let send_certificate_checks =
|
||||||
|
if let Some(certificate_checks) = sql.get_config_int(context, key) {
|
||||||
|
num_traits::FromPrimitive::from_i32(certificate_checks).unwrap_or_default()
|
||||||
|
} else {
|
||||||
|
Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
let key = format!("{}server_flags", prefix);
|
let key = format!("{}server_flags", prefix);
|
||||||
let server_flags = sql.get_config_int(context, key).unwrap_or_default();
|
let server_flags = sql.get_config_int(context, key).unwrap_or_default();
|
||||||
|
|
||||||
@@ -69,10 +103,12 @@ impl LoginParam {
|
|||||||
mail_user,
|
mail_user,
|
||||||
mail_pw,
|
mail_pw,
|
||||||
mail_port,
|
mail_port,
|
||||||
|
mail_certificate_checks,
|
||||||
send_server,
|
send_server,
|
||||||
send_user,
|
send_user,
|
||||||
send_pw,
|
send_pw,
|
||||||
send_port,
|
send_port,
|
||||||
|
send_certificate_checks,
|
||||||
server_flags,
|
server_flags,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user