Make log mailer for testing (#5893)

* Create log mailer for testing email settings

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Switch on the log mailer for the integration tests

This ensures that the sending mail process works

Signed-off-by: Andrew Thornton <art27@cantab.net>

* rename the from user for mysql/mssql

* rename log sender to dummy sender

* update the integration tests
This commit is contained in:
zeripath 2019-02-03 02:06:52 +00:00 committed by techknowlogick
parent 67567eff0e
commit 3d91bb2f2d
8 changed files with 60 additions and 12 deletions

View file

@ -6,6 +6,7 @@
package mailer
import (
"bytes"
"crypto/tls"
"fmt"
"io"
@ -237,6 +238,20 @@ func (s *sendmailSender) Send(from string, to []string, msg io.WriterTo) error {
}
}
// Sender sendmail mail sender
type dummySender struct {
}
// Send send email
func (s *dummySender) Send(from string, to []string, msg io.WriterTo) error {
buf := bytes.Buffer{}
if _, err := msg.WriteTo(&buf); err != nil {
return err
}
log.Info("Mail From: %s To: %v Body: %s", from, to, buf.String())
return nil
}
func processMailQueue() {
for {
select {
@ -265,10 +280,13 @@ func NewContext() {
return
}
if setting.MailService.UseSendmail {
Sender = &sendmailSender{}
} else {
switch setting.MailService.MailerType {
case "smtp":
Sender = &smtpSender{}
case "sendmail":
Sender = &sendmailSender{}
case "dummy":
Sender = &dummySender{}
}
mailQueue = make(chan *Message, setting.MailService.QueueLength)