Browse Source
Add option to set name during HELO in email settings
pull/1046/head
Daniel García
5 years ago
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A
4 changed files with
28 additions and
2 deletions
Cargo.lock
Cargo.toml
src/config.rs
src/mail.rs
@ -837,6 +837,17 @@ dependencies = [
"digest 0.8.1",
]
[[package]]
name = "hostname"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
dependencies = [
"libc",
"match_cfg",
"winapi 0.3.9",
]
[[package]]
name = "html5ever"
version = "0.22.5"
@ -1095,6 +1106,7 @@ checksum = "deaf9b74d40fcb52d0f762eb08e45d5152b4db59d29bb73edd4cac7fe796862c"
dependencies = [
"base64 0.12.3",
"bufstream",
"hostname",
"hyperx",
"idna 0.2.0",
"line-wrap",
@ -1214,6 +1226,12 @@ dependencies = [
"tendril",
]
[[package]]
name = "match_cfg"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
[[package]]
name = "matches"
version = "0.1.8"
@ -92,7 +92,7 @@ num-traits = "0.2.12"
num-derive = "0.3.0"
# Email libraries
lettre = { version = "0.10.0-alpha.1" , features = [ "smtp-transport" , "builder" , "serde" , "native-tls" ] , default-features = false }
lettre = { version = "0.10.0-alpha.1" , features = [ "smtp-transport" , "builder" , "serde" , "native-tls" , "hostname" ] , default-features = false }
native-tls = "0.2.4"
# Template library
@ -394,7 +394,9 @@ make_config! {
/// Json form auth mechanism |> Defaults for ssl is "Plain" and "Login" and nothing for non-ssl connections. Possible values: ["Plain", "Login", "Xoauth2"]
smtp_auth_mechanism : String , true , option ;
/// SMTP connection timeout |> Number of seconds when to stop trying to connect to the SMTP server
smtp_timeout : u64 , true , def , 15 ;
smtp_timeout : u64 , true , def , 15 ;
/// Server name sent during HELO |> By default this value should be is on the machine's hostname, but might need to be changed in case it trips some anti-spam filters
helo_name : String , true , option ;
} ,
/// Email 2FA Settings
@ -2,6 +2,7 @@ use std::str::FromStr;
use lettre ::message ::{ header , Mailbox , Message , MultiPart , SinglePart } ;
use lettre ::transport ::smtp ::authentication ::{ Credentials , Mechanism as SmtpAuthMechanism } ;
use lettre ::transport ::smtp ::extension ::ClientId ;
use lettre ::{ Address , SmtpTransport , Tls , TlsParameters , Transport } ;
use native_tls ::{ Protocol , TlsConnector } ;
@ -42,6 +43,11 @@ fn mailer() -> SmtpTransport {
_ = > smtp_client ,
} ;
let smtp_client = match CONFIG . helo_name ( ) {
Some ( helo_name ) = > smtp_client . hello_name ( ClientId ::new ( helo_name ) ) ,
None = > smtp_client ,
} ;
let smtp_client = match CONFIG . smtp_auth_mechanism ( ) {
Some ( mechanism ) = > {
let correct_mechanism = format ! ( "\"{}\"" , crate ::util ::upcase_first ( mechanism . trim_matches ( '"' ) ) ) ;