better logging in srv when fake Mailer is used

pull/15/head
Brian Picciano 3 years ago
parent bf40fa3868
commit 1608ca7425
  1. 1
      Makefile
  2. 4
      srv/cmd/mediocre-blog/main.go
  3. 20
      srv/mailinglist/mailer.go

@ -1,4 +1,3 @@
all:
nix-build -A entrypoint --arg baseConfig '(import ./config.nix) // { staticProxyURL = ""; }'

@ -74,8 +74,8 @@ func main() {
var mailer mailinglist.Mailer
if mailerParams.SMTPAddr == "" {
logger.Info(ctx, "-smtp-addr not given, using NullMailer")
mailer = mailinglist.NullMailer
logger.Info(ctx, "-smtp-addr not given, using a fake Mailer")
mailer = mailinglist.NewLogMailer(logger.WithNamespace("fake-mailer"))
} else {
mailer = mailinglist.NewMailer(mailerParams)
}

@ -9,6 +9,7 @@ import (
"github.com/emersion/go-smtp"
"github.com/mediocregopher/blog.mediocregopher.com/srv/cfg"
"github.com/mediocregopher/mediocre-go-lib/v2/mctx"
"github.com/mediocregopher/mediocre-go-lib/v2/mlog"
)
// Mailer is used to deliver emails to arbitrary recipients.
@ -16,6 +17,25 @@ type Mailer interface {
Send(to, subject, body string) error
}
type logMailer struct {
logger *mlog.Logger
}
// NewLogMailer returns a Mailer instance which will not actually send any
// emails, it will only log to the given Logger when Send is called.
func NewLogMailer(logger *mlog.Logger) Mailer {
return &logMailer{logger: logger}
}
func (l *logMailer) Send(to, subject, body string) error {
ctx := mctx.Annotate(context.Background(),
"to", to,
"subject", subject,
)
l.logger.Info(ctx, "would have sent email")
return nil
}
// NullMailer acts as a Mailer but actually just does nothing.
var NullMailer = nullMailer{}

Loading…
Cancel
Save