diff options
author | 2023-03-19 13:11:46 +0100 | |
---|---|---|
committer | 2023-03-19 13:11:46 +0100 | |
commit | 7db81cde444f6bc95e79527af0997de1788d48c7 (patch) | |
tree | f6c077ec298a4f018d0870798bc46bd64ba70069 /internal/email/noopsender.go | |
parent | [docs] Update docs on how to login (#1626) (diff) | |
download | gotosocial-7db81cde444f6bc95e79527af0997de1788d48c7.tar.xz |
[feature] Email notifications for new / closed moderation reports (#1628)
* start fiddling about with email sending to allow multiple recipients
* do some fiddling
* notifs working
* notify on closed report
* finishing up
* envparsing
* use strings.ContainsAny
Diffstat (limited to 'internal/email/noopsender.go')
-rw-r--r-- | internal/email/noopsender.go | 54 |
1 files changed, 16 insertions, 38 deletions
diff --git a/internal/email/noopsender.go b/internal/email/noopsender.go index 7164440f3..0ed7ff747 100644 --- a/internal/email/noopsender.go +++ b/internal/email/noopsender.go @@ -49,62 +49,40 @@ type noopSender struct { } func (s *noopSender) SendConfirmEmail(toAddress string, data ConfirmData) error { - buf := &bytes.Buffer{} - if err := s.template.ExecuteTemplate(buf, confirmTemplate, data); err != nil { - return err - } - confirmBody := buf.String() - - msg, err := assembleMessage(confirmSubject, confirmBody, toAddress, "test@example.org") - if err != nil { - return err - } - - log.Tracef(nil, "NOT SENDING confirmation email to %s with contents: %s", toAddress, msg) - - if s.sendCallback != nil { - s.sendCallback(toAddress, string(msg)) - } - return nil + return s.sendTemplate(confirmTemplate, confirmSubject, data, toAddress) } func (s *noopSender) SendResetEmail(toAddress string, data ResetData) error { - buf := &bytes.Buffer{} - if err := s.template.ExecuteTemplate(buf, resetTemplate, data); err != nil { - return err - } - resetBody := buf.String() - - msg, err := assembleMessage(resetSubject, resetBody, toAddress, "test@example.org") - if err != nil { - return err - } + return s.sendTemplate(resetTemplate, resetSubject, data, toAddress) +} - log.Tracef(nil, "NOT SENDING reset email to %s with contents: %s", toAddress, msg) +func (s *noopSender) SendTestEmail(toAddress string, data TestData) error { + return s.sendTemplate(testTemplate, testSubject, data, toAddress) +} - if s.sendCallback != nil { - s.sendCallback(toAddress, string(msg)) - } +func (s *noopSender) SendNewReportEmail(toAddresses []string, data NewReportData) error { + return s.sendTemplate(newReportTemplate, newReportSubject, data, toAddresses...) +} - return nil +func (s *noopSender) SendReportClosedEmail(toAddress string, data ReportClosedData) error { + return s.sendTemplate(reportClosedTemplate, reportClosedSubject, data, toAddress) } -func (s *noopSender) SendTestEmail(toAddress string, data TestData) error { +func (s *noopSender) sendTemplate(template string, subject string, data any, toAddresses ...string) error { buf := &bytes.Buffer{} - if err := s.template.ExecuteTemplate(buf, testTemplate, data); err != nil { + if err := s.template.ExecuteTemplate(buf, template, data); err != nil { return err } - testBody := buf.String() - msg, err := assembleMessage(testSubject, testBody, toAddress, "test@example.org") + msg, err := assembleMessage(subject, buf.String(), "test@example.org", toAddresses...) if err != nil { return err } - log.Tracef(nil, "NOT SENDING test email to %s with contents: %s", toAddress, msg) + log.Tracef(nil, "NOT SENDING email to %s with contents: %s", toAddresses, msg) if s.sendCallback != nil { - s.sendCallback(toAddress, string(msg)) + s.sendCallback(toAddresses[0], string(msg)) } return nil |