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 ( '"' ) ) ) ;