/
workers.go
50 lines (42 loc) · 1.11 KB
/
workers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package auth
import (
log "github.com/Sirupsen/logrus"
"github.com/kapmahc/lotus/web"
gomail "gopkg.in/gomail.v2"
)
//SMTP smtp config
type SMTP struct {
From string `json:"form"`
Username string `json:"username"`
Password string `json:"-"`
Host string `json:"host"`
Port int `json:"port"`
}
//Worker register worker
func (p *Engine) Worker() {
p.Server.RegisterTask(userEmailQueue, func(to, subject, body string) (interface{}, error) {
var err error
if web.IsProduction() {
var cfg SMTP
err = p.Dao.Get("smtp", &cfg)
if err == nil {
msg := gomail.NewMessage()
msg.SetHeader("From", cfg.From)
msg.SetHeader("To", to)
// msg.SetHeader("Cc", cc...)
// msg.SetHeader("Bcc", bcc...)
msg.SetHeader("Subject", subject)
msg.SetBody("text/html", body)
// for _, f := range files {
// msg.Attach(f)
// }
dia := gomail.NewDialer(cfg.Host, cfg.Port, cfg.Username, cfg.Password)
err = dia.DialAndSend(msg)
}
} else {
log.Debugf("send mail to %s: %s \n %s", to, subject, body)
}
return "done", err
})
}
const userEmailQueue = "auth.user.email"