Create & Init Project...
This commit is contained in:
35
app/admin/ep/marthe/dao/mail.go
Normal file
35
app/admin/ep/marthe/dao/mail.go
Normal file
@ -0,0 +1,35 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/gomail.v2"
|
||||
)
|
||||
|
||||
const (
|
||||
_MailBoxNotFound = "Mailbox not found"
|
||||
)
|
||||
|
||||
// SendMail asynchronous send mail.
|
||||
func (d *Dao) SendMail(message *gomail.Message) {
|
||||
message.SetAddressHeader("From", d.email.Username, "merlin")
|
||||
d.cache.Do(context.TODO(), func(ctx context.Context) {
|
||||
d.SendMailIfFailed(message)
|
||||
})
|
||||
}
|
||||
|
||||
// SendMailIfFailed Send Mail If Failed
|
||||
func (d *Dao) SendMailIfFailed(message *gomail.Message) {
|
||||
if err := d.email.DialAndSend(message); err != nil {
|
||||
if strings.Contains(err.Error(), _MailBoxNotFound) {
|
||||
headerMsg := message.GetHeader("Subject")
|
||||
headerMsg = append(headerMsg, "Mail Send Error:"+err.Error()+",Receiver:")
|
||||
headerMsg = append(headerMsg, message.GetHeader("To")...)
|
||||
|
||||
message.SetHeader("To", d.c.Mail.NoticeOwner...)
|
||||
message.SetHeader("Subject", headerMsg...)
|
||||
d.email.DialAndSend(message)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user