From 3989c492dbfd127f112976c4dc7e9e363447224d Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 2 Jul 2025 12:20:13 +0800 Subject: [PATCH] dev: add retry for send email --- emailsender/emailsender.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/emailsender/emailsender.go b/emailsender/emailsender.go index 2610239..a8d9289 100644 --- a/emailsender/emailsender.go +++ b/emailsender/emailsender.go @@ -69,6 +69,8 @@ func New(cfg Config) *EmailPlainAuthSender { to string name string body string + + retry int } var whiteListRegs = []*regexp.Regexp{} @@ -98,7 +100,7 @@ func New(cfg Config) *EmailPlainAuthSender { var emailQueue = make(chan emailItem, 1024) var emailSendFunc = func(to string, name, body string) (err error) { - eml := emailItem{to, name, body} + eml := emailItem{to, name, body, 0} emailQueue <- eml return nil } @@ -139,6 +141,13 @@ func New(cfg Config) *EmailPlainAuthSender { log.Infof("to[%v],from[%s]", m.To, m.From) log.Infof("smtpUser[%s],smtpPass[%s],smtpAddr[%s:%s],smtpProxy[%s]", smtpUser, secLogPass(smtpPass), smtpAddr, smtpPort, secLogProxy(cfg.SmtpProxy)) + if eml.retry < 5 { + go func() { + eml.retry++ + time.Sleep(time.Duration(5*eml.retry) * time.Second) + emailQueue <- eml + }() + } continue } log.Infof("success send email to [%s]", eml.to)