diff options
author | Dmitry Azhichakov <dmitry@dsa.pp.ru> | 2015-02-12 18:54:51 +0300 |
---|---|---|
committer | Dmitry Azhichakov <dmitry@dsa.pp.ru> | 2015-02-12 18:54:51 +0300 |
commit | 8a6c86644e6d73421e325c937916cefe7495bc38 (patch) | |
tree | 3213eb7b5a2a095daab8039cde84e7436d2d8534 /modules | |
parent | 485ea6f14f38cfa5da4fa27865f62fcc7691ffb4 (diff) | |
download | gitea-8a6c86644e6d73421e325c937916cefe7495bc38.tar.gz gitea-8a6c86644e6d73421e325c937916cefe7495bc38.zip |
New feature: SMTP connection may use client certificate.
New config keys in [mailer] section:
- CERT_FILE: path to a certificate file.
- KEY_FILE: path to a key file.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mailer/mailer.go | 6 | ||||
-rw-r--r-- | modules/setting/setting.go | 13 |
2 files changed, 14 insertions, 5 deletions
diff --git a/modules/mailer/mailer.go b/modules/mailer/mailer.go index 6a23e5d09e..792e443543 100644 --- a/modules/mailer/mailer.go +++ b/modules/mailer/mailer.go @@ -72,9 +72,15 @@ func sendMail(settings *setting.Mailer, recipients []string, msgContent []byte) return err } + cert, err := tls.LoadX509KeyPair(settings.CertFile, settings.KeyFile) + if err != nil { + return err + } + tlsconfig := &tls.Config{ InsecureSkipVerify: settings.SkipVerify, ServerName: host, + Certificates: []tls.Certificate{cert}, } conn, err := net.Dial("tcp", net.JoinHostPort(host, port)) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index d71a8cda55..cf19b1aa8b 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -446,11 +446,12 @@ func newSessionService() { // Mailer represents mail service. type Mailer struct { - Name string - Host string - From string - User, Passwd string - SkipVerify bool + Name string + Host string + From string + User, Passwd string + SkipVerify bool + CertFile, KeyFile string } type OauthInfo struct { @@ -483,6 +484,8 @@ func newMailService() { User: sec.Key("USER").String(), Passwd: sec.Key("PASSWD").String(), SkipVerify: sec.Key("SKIP_VERIFY").MustBool(), + CertFile: sec.Key("CERT_FILE").String(), + KeyFile: sec.Key("KEY_FILE").String(), } MailService.From = sec.Key("FROM").MustString(MailService.User) log.Info("Mail Service Enabled") |