newsbox/mailers/message_forwarder.go
Adriano Caloiaro 8ae801ae5f
Initial commit
2023-02-15 08:57:48 -08:00

34 lines
819 B
Go

package mailers
import (
"fmt"
"io"
"newsbox/internal"
"newsbox/models"
"github.com/gobuffalo/buffalo/mail"
"github.com/gobuffalo/buffalo/render"
)
// ForwardMessage forwards messages that are queued to be delivered to users
func ForwardMessage(recipient string, msg *models.Message) error {
m := mail.NewMessage()
m.Subject = msg.Subject
m.From = fmt.Sprintf("noreply@%s", internal.SiteDomain())
m.To = []string{recipient}
data := render.Data{"html_content": msg.BodyHTML, "text_content": msg.Body}
err := m.AddBody(r.Func("text/html", func(w io.Writer, data render.Data) (err error) {
_, err = w.Write([]byte(msg.BodyHTML))
return
}), data)
if err != nil {
return err
}
err = m.AddBody(r.Plain("mail/forwarded_mail.plush.tpl"), data)
if err != nil {
return err
}
return smtp.Send(m)
}