2019-08-07 13:16:23 +08:00
|
|
|
|
package send
|
|
|
|
|
|
|
|
|
|
import (
|
2020-12-03 11:21:22 +08:00
|
|
|
|
"crypto/tls"
|
2019-08-07 13:16:23 +08:00
|
|
|
|
"strconv"
|
2020-12-03 11:21:22 +08:00
|
|
|
|
"gopkg.in/gomail.v2"
|
2019-08-08 09:52:05 +08:00
|
|
|
|
"HFish/utils/log"
|
2019-08-07 13:16:23 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func SendMail(mailTo []string, subject string, body string, config []string) error {
|
2020-12-03 11:21:22 +08:00
|
|
|
|
port, _ := strconv.Atoi(config[2])
|
2019-08-07 13:16:23 +08:00
|
|
|
|
m := gomail.NewMessage()
|
|
|
|
|
|
2020-12-03 11:21:22 +08:00
|
|
|
|
m.SetHeader("From", "<"+config[3]+">")
|
2019-08-07 13:16:23 +08:00
|
|
|
|
m.SetHeader("To", mailTo...) //发送给多个用户
|
|
|
|
|
m.SetHeader("Subject", subject) //设置邮件主题
|
|
|
|
|
m.SetBody("text/html", body) //设置邮件正文
|
|
|
|
|
|
2020-12-03 11:21:22 +08:00
|
|
|
|
d := gomail.NewDialer(config[0], port, config[3], config[4])
|
2020-05-09 20:54:06 +08:00
|
|
|
|
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
2019-08-07 13:16:23 +08:00
|
|
|
|
|
|
|
|
|
err := d.DialAndSend(m)
|
|
|
|
|
if err != nil {
|
2019-08-08 09:52:05 +08:00
|
|
|
|
log.Pr("HFish", "127.0.0.1", "发送邮件通知失败", err)
|
2019-08-07 13:16:23 +08:00
|
|
|
|
} else {
|
2019-08-08 09:52:05 +08:00
|
|
|
|
log.Pr("HFish", "127.0.0.1", "发送邮件通知成功")
|
2019-08-07 13:16:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
}
|
2020-12-03 11:21:22 +08:00
|
|
|
|
|
|
|
|
|
func TestMail(addr, protocol, port, account, password string, receivers []string) error {
|
|
|
|
|
intPort, err := strconv.Atoi(port)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m := gomail.NewMessage()
|
|
|
|
|
m.SetHeader("From", "<"+account+">")
|
|
|
|
|
m.SetHeader("To", receivers...) //发送给多个用户
|
|
|
|
|
m.SetHeader("Subject", "HFish测试邮件") //设置邮件主题
|
|
|
|
|
m.SetBody("text/html", "Hello, 这是HFish蜜罐测试邮件!") //设置邮件正文
|
|
|
|
|
|
|
|
|
|
d := gomail.NewDialer(addr, intPort, account, password)
|
|
|
|
|
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
|
|
|
|
|
|
|
|
|
return d.DialAndSend(m)
|
|
|
|
|
}
|