Skip to content

Commit

Permalink
Add checkbox that allows invalid SMTP certificates to be used.
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Schokker committed Nov 8, 2021
1 parent 0bf8cd6 commit 556c31d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
9 changes: 9 additions & 0 deletions config/config-base.json
Expand Up @@ -552,6 +552,15 @@
"type": "text",
"value": "",
"description": "Use if your SMTP server's SSL Certificate is not trusted by the system."
},
"cert_validation": {
"name": "Verify certificate",
"required": false,
"requires_restart": false,
"advanced": true,
"type": "bool",
"value": true,
"description": "Warning, disabling this makes you much more vulnerable to man-in-the-middle attacks"
}
}
},
Expand Down
8 changes: 4 additions & 4 deletions email.go
Expand Up @@ -84,7 +84,7 @@ func NewEmailer(app *appContext) *Emailer {
if username == "" && password != "" {
username = emailer.fromAddr
}
err := emailer.NewSMTP(app.config.Section("smtp").Key("server").String(), app.config.Section("smtp").Key("port").MustInt(465), username, password, sslTLS, app.config.Section("smtp").Key("ssl_cert").MustString(""), app.config.Section("smtp").Key("hello_hostname").String())
err := emailer.NewSMTP(app.config.Section("smtp").Key("server").String(), app.config.Section("smtp").Key("port").MustInt(465), username, password, sslTLS, app.config.Section("smtp").Key("ssl_cert").MustString(""), app.config.Section("smtp").Key("hello_hostname").String(), app.config.Section("smtp").Key("cert-validation").MustBool(true))
if err != nil {
app.err.Printf("Error while initiating SMTP mailer: %v", err)
}
Expand All @@ -110,7 +110,7 @@ type SMTP struct {
}

// NewSMTP returns an SMTP emailClient.
func (emailer *Emailer) NewSMTP(server string, port int, username, password string, sslTLS bool, certPath string, helloHostname string) (err error) {
func (emailer *Emailer) NewSMTP(server string, port int, username, password string, sslTLS bool, certPath string, helloHostname string, validateCertificate bool) (err error) {
sender := &SMTP{}
sender.Client = sMail.NewSMTPClient()
if sslTLS {
Expand All @@ -131,7 +131,7 @@ func (emailer *Emailer) NewSMTP(server string, port int, username, password stri
// x509.SystemCertPool is unavailable on windows
if PLATFORM == "windows" {
sender.Client.TLSConfig = &tls.Config{
InsecureSkipVerify: false,
InsecureSkipVerify: validateCertificate,
ServerName: server,
}
emailer.sender = sender
Expand All @@ -149,7 +149,7 @@ func (emailer *Emailer) NewSMTP(server string, port int, username, password stri
}
}
sender.Client.TLSConfig = &tls.Config{
InsecureSkipVerify: false,
InsecureSkipVerify: validateCertificate,
ServerName: server,
RootCAs: rootCAs,
}
Expand Down
3 changes: 2 additions & 1 deletion ts/setup.ts
Expand Up @@ -296,7 +296,8 @@ const settings = {
"encryption": new Select(get("smtp-encryption")),
"server": new Input(get("smtp-server")),
"port": new Input(get("smtp-port")),
"password": new Input(get("smtp-password"))
"password": new Input(get("smtp-password")),
"cert-validation": new Input(get("smtp-cert-validation"))
},
"ombi": {
"enabled": new Checkbox(get("ombi-enabled"), "", false, "ombi", "enabled"),
Expand Down

0 comments on commit 556c31d

Please sign in to comment.