summaryrefslogtreecommitdiff
path: root/internal/email/noopsender.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-03-19 13:11:46 +0100
committerLibravatar GitHub <noreply@github.com>2023-03-19 13:11:46 +0100
commit7db81cde444f6bc95e79527af0997de1788d48c7 (patch)
treef6c077ec298a4f018d0870798bc46bd64ba70069 /internal/email/noopsender.go
parent[docs] Update docs on how to login (#1626) (diff)
downloadgotosocial-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.go54
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