feat: send mail attachment

This commit is contained in:
zchengo
2023-01-30 15:50:10 +08:00
parent 3902d51d11
commit 4a424817de
4 changed files with 96 additions and 38 deletions
+9 -6
View File
@@ -18,11 +18,11 @@ func SendMail(email, content string) error {
secret := global.Config.Mail.Secret
sender := global.Config.Mail.Sender
m := gomail.NewMessage()
m.SetHeader("From", sender) // 发件人
m.SetHeader("To", email) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
m.SetHeader("Cc", email) // 抄送,可以多个
m.SetHeader("Bcc", email) // 暗送,可以多个
m.SetHeader("Subject", "ZOCRM") // 邮件主题
m.SetHeader("From", sender) // 发件人
m.SetHeader("To", email) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
m.SetHeader("Cc", email) // 抄送,可以多个
m.SetHeader("Bcc", email) // 暗送,可以多个
m.SetHeader("Subject", "ZOCRM") // 邮件主题
m.SetBody("text/html", content)
d := gomail.NewDialer(smtp, 465, sender, secret)
// 关闭SSL协议认证
@@ -41,6 +41,9 @@ func SendMailToCustomer(mp models.MailParam) error {
m.SetHeader("To", mp.Receiver)
m.SetHeader("Subject", mp.Subject)
m.SetBody("text/html", mp.Content)
if mp.Attachment != "" {
m.Attach(mp.Attachment)
}
d := gomail.NewDialer(mp.Smtp, mp.Port, mp.Sender, mp.AuthCode)
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
@@ -56,4 +59,4 @@ func DialMail(smtp string, port int, sender, authCode string) error {
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
_, err := d.Dial()
return err
}
}
+5 -4
View File
@@ -46,10 +46,11 @@ type CustomerUpdateParam struct {
}
type CustomerSendMailParam struct {
Uid int64 `json:"uid" binding:"-"`
Receiver string `json:"receiver" binding:"required,email"`
Subject string `json:"subject" binding:"omitempty,gt=0"`
Content string `json:"content" binding:"required,gt=0"`
Uid int64 `json:"uid" binding:"-"`
Receiver string `json:"receiver" binding:"required,email"`
Subject string `json:"subject" binding:"omitempty,gt=0"`
Content string `json:"content" binding:"required,gt=0"`
Attachment string `json:"attachment" binding:"omitempty,gt=0"`
}
type CustomerDeleteParam struct {
+10 -9
View File
@@ -54,16 +54,17 @@ func (c *CustomerService) SendMail(param *models.CustomerSendMailParam) int {
if mc.Status == Close {
return response.ErrCodeMailSendUnEnable
}
mailParam := models.MailParam{
Smtp: mc.Stmp,
Port: mc.Port,
AuthCode: mc.AuthCode,
Sender: mc.Email,
Subject: param.Subject,
Content: param.Content,
Receiver: param.Receiver,
mail := models.MailParam{
Smtp: mc.Stmp,
Port: mc.Port,
AuthCode: mc.AuthCode,
Sender: mc.Email,
Subject: param.Subject,
Content: param.Content,
Attachment: param.Attachment,
Receiver: param.Receiver,
}
if err := common.SendMailToCustomer(mailParam); err != nil {
if err := common.SendMailToCustomer(mail); err != nil {
return response.ErrCodeMailSendFailed
}
return response.ErrCodeSuccess