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!")
|
||||
}
|
||||
Reference in New Issue
Block a user