feat(internal/sendMail): 邮件报警
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/ssdomei232/goodBaby/configs"
|
||||
"github.com/wneessen/go-mail"
|
||||
)
|
||||
|
||||
func SendMail() {
|
||||
config, err := configs.GetConfig()
|
||||
if err != nil {
|
||||
log.Printf("获取配置文件失败: %v", err)
|
||||
}
|
||||
for _, address := range config.MailList {
|
||||
sendMailMsg(address, config.MailContent)
|
||||
}
|
||||
}
|
||||
|
||||
func sendMailMsg(address string, msg string) {
|
||||
config, err := configs.GetConfig()
|
||||
if err != nil {
|
||||
log.Printf("获取配置文件失败: %v", err)
|
||||
}
|
||||
|
||||
mailMsg := fmt.Sprintf("Hello,\nThis is a test email sent from Go!%s", msg)
|
||||
|
||||
client, err := mail.NewClient(
|
||||
config.SMTPConfig.Host,
|
||||
mail.WithPort(config.SMTPConfig.Port),
|
||||
mail.WithSSL(),
|
||||
mail.WithUsername(config.SMTPConfig.User),
|
||||
mail.WithPassword(config.SMTPConfig.Password),
|
||||
mail.WithSMTPAuth(mail.SMTPAuthPlain),
|
||||
)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
// 创建邮件
|
||||
message := mail.NewMsg()
|
||||
message.From(config.SMTPConfig.User)
|
||||
message.To(address)
|
||||
message.Subject(config.MailTitle)
|
||||
message.SetBodyString(mail.TypeTextPlain, mailMsg)
|
||||
|
||||
// 发送邮件
|
||||
if err := client.DialAndSend(message); err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("Email sent successfully!")
|
||||
}
|
||||
@@ -12,26 +12,26 @@ import (
|
||||
"github.com/ssdomei232/goodBaby/configs"
|
||||
)
|
||||
|
||||
func SendQQMsg() {
|
||||
func SendQQ() {
|
||||
config, err := configs.GetConfig()
|
||||
if err != nil {
|
||||
log.Printf("获取配置文件失败: %v", err)
|
||||
}
|
||||
|
||||
url := fmt.Sprintf("%s/%s", config.CatBotUrl, config.CatBotKey)
|
||||
url := fmt.Sprintf("%s/?secret=%s", config.CatBotUrl, config.CatBotKey)
|
||||
|
||||
for _, groupId := range config.QQSendGroup {
|
||||
sendMsg(url, groupId, config.QQMsg)
|
||||
sendQQMsg(url, groupId, config.QQMsg)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func sendMsg(url string, groupId int, msg string) {
|
||||
func sendQQMsg(url string, groupId int, msg string) {
|
||||
method := "POST"
|
||||
payload := &bytes.Buffer{}
|
||||
writer := multipart.NewWriter(payload)
|
||||
_ = writer.WriteField("group_id", strconv.Itoa(groupId))
|
||||
_ = writer.WriteField("message", msg)
|
||||
_ = writer.WriteField("message", msg) //TODO: 发送死亡区间
|
||||
err := writer.Close()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
|
||||
Reference in New Issue
Block a user