diff options
Diffstat (limited to 'modules/log/smtp.go')
-rw-r--r-- | modules/log/smtp.go | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/modules/log/smtp.go b/modules/log/smtp.go deleted file mode 100644 index 0a10e56a..00000000 --- a/modules/log/smtp.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package log - -import ( - "encoding/json" - "fmt" - "net/smtp" - "strings" - "time" -) - -const ( - subjectPhrase = "Diagnostic message from server" -) - -// smtpWriter implements LoggerInterface and is used to send emails via given SMTP-server. -type SmtpWriter struct { - Username string `json:"Username"` - Password string `json:"password"` - Host string `json:"Host"` - Subject string `json:"subject"` - RecipientAddresses []string `json:"sendTos"` - Level int `json:"level"` -} - -// create smtp writer. -func NewSmtpWriter() LoggerInterface { - return &SmtpWriter{Level: TRACE} -} - -// init smtp writer with json config. -// config like: -// { -// "Username":"example@gmail.com", -// "password:"password", -// "host":"smtp.gmail.com:465", -// "subject":"email title", -// "sendTos":["email1","email2"], -// "level":LevelError -// } -func (sw *SmtpWriter) Init(jsonconfig string) error { - return json.Unmarshal([]byte(jsonconfig), sw) -} - -// write message in smtp writer. -// it will send an email with subject and only this message. -func (s *SmtpWriter) WriteMsg(msg string, skip, level int) error { - if level < s.Level { - return nil - } - - hp := strings.Split(s.Host, ":") - - // Set up authentication information. - auth := smtp.PlainAuth( - "", - s.Username, - s.Password, - hp[0], - ) - // Connect to the server, authenticate, set the sender and recipient, - // and send the email all in one step. - content_type := "Content-Type: text/plain" + "; charset=UTF-8" - mailmsg := []byte("To: " + strings.Join(s.RecipientAddresses, ";") + "\r\nFrom: " + s.Username + "<" + s.Username + - ">\r\nSubject: " + s.Subject + "\r\n" + content_type + "\r\n\r\n" + fmt.Sprintf(".%s", time.Now().Format("2006-01-02 15:04:05")) + msg) - - return smtp.SendMail( - s.Host, - auth, - s.Username, - s.RecipientAddresses, - mailmsg, - ) -} - -func (_ *SmtpWriter) Flush() { -} - -func (_ *SmtpWriter) Destroy() { -} - -func init() { - Register("smtp", NewSmtpWriter) -} |