package mail import ( "fmt" "log" "net/smtp" "strings" "time" ) func (mail *MailClient) SendPanicWarning(content string) (err error) { e := Email{ From: FROM_USERNAME, PassWord: FROM_PASSWORD, To: TO_USERNAME, Subject: "panic", Content: content, } return mail.send(e) } func (mail *MailClient) SendCustomWarning(subject, content string) (err error) { e := Email{ From: FROM_USERNAME, PassWord: FROM_PASSWORD, To: TO_USERNAME, Subject: subject, Content: content, } return mail.send(e) } func (mail *MailClient) send(e Email) (err error) { now := time.Now().Format("2006-01-02 15:04:05") e.Subject = fmt.Sprintf("Title: %s AppName: %s Env: %s Time: %s", e.Subject, mail.AppName, mail.Env, now) // 按需要的格式设置邮件内容 message := []byte("From: " + e.From + "\r\n" + "To: " + e.To + "\r\n" + "Subject: " + e.Subject + "\r\n" + "\r\n" + e.Content) // 连接到 SMTP 服务器 auth := smtp.PlainAuth("", e.From, e.PassWord, mail.Server) err = smtp.SendMail(fmt.Sprintf("%s:%s", mail.Server, mail.Port), auth, e.From, strings.Split(e.To, ","), []byte(message)) if err != nil { log.Println("Email send is failed , Error:", err) return } log.Println("Email send successfully!") return }