|
@@ -0,0 +1,54 @@
|
|
|
+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("AppName: %s Title: %s Time: %s", mail.AppName, e.Subject, 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
|
|
|
+}
|