wangchuanjin 7 years ago
parent
commit
760ec4b1bb
2 changed files with 24 additions and 9 deletions
  1. 1 0
      common/src/qfw/util/date.go
  2. 23 9
      common/src/qfw/util/mail/gmail.go

+ 1 - 0
common/src/qfw/util/date.go

@@ -11,6 +11,7 @@ const (
 	Date_Short_Layout = "2006-01-02"
 	Date_Small_Layout = "01-02"
 	Date_Time_Layout  = "15:04"
+	Date_yyyyMMdd     = "20060102"
 )
 
 //日期格式化

+ 23 - 9
common/src/qfw/util/mail/gmail.go

@@ -1,8 +1,7 @@
 package mail
 
 import (
-	"log"
-	"qfw/util"
+	"sync"
 
 	"github.com/go-gomail/gomail"
 )
@@ -14,8 +13,17 @@ type GmailAuth struct {
 	Pwd      string //密码
 }
 
+var mailLock = &sync.Mutex{}
+var dialer *gomail.Dialer
+
+func getDialer(flag bool, auth *GmailAuth) *gomail.Dialer {
+	if flag && dialer != nil {
+		return dialer
+	}
+	dialer = gomail.NewPlainDialer(auth.SmtpHost, auth.SmtpPort, auth.User, auth.Pwd) // 发送邮件服务器、端口、发件人账号、发件人密码
+	return dialer
+}
 func GSendMail(from, to, cc, bcc, subject, body, fname, rename string, auth *GmailAuth) bool {
-	defer util.Catch()
 	m := gomail.NewMessage()
 	m.SetAddressHeader("From", auth.User, from) // 发件人
 	m.SetHeader("To",
@@ -33,11 +41,17 @@ func GSendMail(from, to, cc, bcc, subject, body, fname, rename string, auth *Gma
 		m.Attach(fname, gomail.Rename(rename), gomail.SetHeader(h)) //添加附件
 		//m.Attach(fname) //添加附件
 	}
-	d := gomail.NewPlainDialer(auth.SmtpHost, auth.SmtpPort, auth.User, auth.Pwd) // 发送邮件服务器、端口、发件人账号、发件人密码
-	if err := d.DialAndSend(m); err != nil {
-		log.Println("发送邮件出错", err.Error())
-		return false
-	} else {
-		return true
+	return gSend(auth, m)
+}
+
+//
+func gSend(auth *GmailAuth, m *gomail.Message) bool {
+	mailLock.Lock()
+	defer mailLock.Unlock()
+	for i := 0; i < 2; i++ {
+		if err := getDialer(i == 0, auth).DialAndSend(m); err == nil {
+			return true
+		}
 	}
+	return false
 }