mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2026-01-06 02:33:22 -06:00
[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
This commit is contained in:
parent
9c55c07be9
commit
7db81cde44
35 changed files with 773 additions and 420 deletions
|
|
@ -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
|
||||
}
|
||||
|
||||
log.Tracef(nil, "NOT SENDING reset email to %s with contents: %s", toAddress, msg)
|
||||
|
||||
if s.sendCallback != nil {
|
||||
s.sendCallback(toAddress, string(msg))
|
||||
}
|
||||
|
||||
return nil
|
||||
return s.sendTemplate(resetTemplate, resetSubject, data, toAddress)
|
||||
}
|
||||
|
||||
func (s *noopSender) SendTestEmail(toAddress string, data TestData) error {
|
||||
return s.sendTemplate(testTemplate, testSubject, data, toAddress)
|
||||
}
|
||||
|
||||
func (s *noopSender) SendNewReportEmail(toAddresses []string, data NewReportData) error {
|
||||
return s.sendTemplate(newReportTemplate, newReportSubject, data, toAddresses...)
|
||||
}
|
||||
|
||||
func (s *noopSender) SendReportClosedEmail(toAddress string, data ReportClosedData) error {
|
||||
return s.sendTemplate(reportClosedTemplate, reportClosedSubject, data, toAddress)
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue