feat: send mail attachment
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user