mirror of
https://github.com/acaloiaro/newsbox
synced 2026-07-21 10:12:26 +00:00
34 lines
819 B
Go
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)
|
|
}
|