Files
LingXi-CRM/server/common/mail.go
T

63 lines
1.9 KiB
Go
Raw Normal View History

2022-11-28 16:38:30 +08:00
package common
import (
"crm/global"
2023-01-24 20:03:35 +08:00
"crm/models"
2022-11-28 16:38:30 +08:00
"crypto/tls"
"fmt"
2023-01-24 20:03:35 +08:00
"log"
2022-11-28 16:38:30 +08:00
"gopkg.in/gomail.v2"
)
2023-01-24 20:03:35 +08:00
// 发送邮件(系统级别)
2022-11-28 16:38:30 +08:00
// QQ邮箱:SMTP 服务器地址:smtp.qq.comSSL协议端口:465/994 | 非SSL协议端口:25
// 163邮箱:SMTP 服务器地址:smtp.163.com(端口:25
func SendMail(email, content string) error {
smtp := global.Config.Mail.Smtp
secret := global.Config.Mail.Secret
sender := global.Config.Mail.Sender
m := gomail.NewMessage()
2023-01-30 15:50:10 +08:00
m.SetHeader("From", sender) // 发件人
m.SetHeader("To", email) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
m.SetHeader("Cc", email) // 抄送,可以多个
m.SetHeader("Bcc", email) // 暗送,可以多个
m.SetHeader("Subject", "灵犀客户通") // 邮件主题
2022-11-28 16:38:30 +08:00
m.SetBody("text/html", content)
2022-12-06 12:40:48 +08:00
d := gomail.NewDialer(smtp, 465, sender, secret)
2022-11-28 16:38:30 +08:00
// 关闭SSL协议认证
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
fmt.Printf("qq mail send error : %s", err)
return err
}
return nil
2023-01-24 20:03:35 +08:00
}
// 发送邮件给客户(客户级别)
func SendMailToCustomer(mp models.MailParam) error {
m := gomail.NewMessage()
m.SetHeader("From", mp.Sender)
m.SetHeader("To", mp.Receiver)
m.SetHeader("Subject", mp.Subject)
m.SetBody("text/html", mp.Content)
2023-01-30 15:50:10 +08:00
if mp.Attachment != "" {
m.Attach(mp.Attachment)
}
2023-01-24 20:03:35 +08:00
d := gomail.NewDialer(mp.Smtp, mp.Port, mp.Sender, mp.AuthCode)
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
log.Printf("send mail to customer error : %s", err)
return err
}
return nil
}
// 检测STMP服务是否可连接
func DialMail(smtp string, port int, sender, authCode string) error {
d := gomail.NewDialer(smtp, port, sender, authCode)
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
_, err := d.Dial()
return err
2023-01-30 15:50:10 +08:00
}