Explicitly decide whether to use TLS in mailer's configuration (#5024)
* explicitly decide on using TLS for mail connections * explicitly decide on using TLS for mail connections * keep compatibility
This commit is contained in:
		
							parent
							
								
									ce9a5173fe
								
							
						
					
					
						commit
						3a1ed82529
					
				
					 4 changed files with 10 additions and 6 deletions
				
			
		|  | @ -388,6 +388,8 @@ SKIP_VERIFY = | |||
| USE_CERTIFICATE = false | ||||
| CERT_FILE = custom/mailer/cert.pem | ||||
| KEY_FILE = custom/mailer/key.pem | ||||
| ; Should SMTP connection use TLS | ||||
| IS_TLS_ENABLED = false | ||||
| ; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format | ||||
| FROM = | ||||
| ; Mailer user name and password | ||||
|  |  | |||
|  | @ -222,6 +222,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`. | |||
|      `FROM` and `SENDMAIL_PATH`. | ||||
| - `SENDMAIL_PATH`: **sendmail**: The location of sendmail on the operating system (can be | ||||
|    command or full path). | ||||
| - ``IS_TLS_ENABLED`` :  **false** : Decide if SMTP connections should use TLS. | ||||
| 
 | ||||
| ## Cache (`cache`) | ||||
| 
 | ||||
|  |  | |||
|  | @ -122,11 +122,10 @@ func (s *smtpSender) Send(from string, to []string, msg io.WriterTo) error { | |||
| 	} | ||||
| 	defer conn.Close() | ||||
| 
 | ||||
| 	isSecureConn := false | ||||
| 	isSecureConn := opts.IsTLSEnabled || (strings.HasSuffix(port, "465")) | ||||
| 	// Start TLS directly if the port ends with 465 (SMTPS protocol)
 | ||||
| 	if strings.HasSuffix(port, "465") { | ||||
| 	if isSecureConn { | ||||
| 		conn = tls.Client(conn, tlsconfig) | ||||
| 		isSecureConn = true | ||||
| 	} | ||||
| 
 | ||||
| 	client, err := smtp.NewClient(conn, host) | ||||
|  |  | |||
|  | @ -1523,6 +1523,7 @@ type Mailer struct { | |||
| 	SkipVerify        bool | ||||
| 	UseCertificate    bool | ||||
| 	CertFile, KeyFile string | ||||
| 	IsTLSEnabled      bool | ||||
| 
 | ||||
| 	// Sendmail sender
 | ||||
| 	UseSendmail  bool | ||||
|  | @ -1556,6 +1557,7 @@ func newMailService() { | |||
| 		UseCertificate: sec.Key("USE_CERTIFICATE").MustBool(), | ||||
| 		CertFile:       sec.Key("CERT_FILE").String(), | ||||
| 		KeyFile:        sec.Key("KEY_FILE").String(), | ||||
| 		IsTLSEnabled:   sec.Key("IS_TLS_ENABLED").MustBool(), | ||||
| 
 | ||||
| 		UseSendmail:  sec.Key("USE_SENDMAIL").MustBool(), | ||||
| 		SendmailPath: sec.Key("SENDMAIL_PATH").MustString("sendmail"), | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue