代码拉取完成,页面将自动刷新
/*
@Time : 2020/6/2 11:13
@Author : wayos
@File : gomail.go
@Software: bill-service
*/
package mail
import (
"crypto/tls"
"gopkg.in/gomail.v2"
"strings"
"sync"
)
// Msg
type Msg struct {
Name string
User string
Password string
Host string
Port int
SendTo []string
Subject string
Body string
ContentType string
}
var (
// 邮件发送对象
mail *gomail.Message
// 邮件锁
lock *sync.Mutex
)
/*邮件内容类型*/
const (
// 文本内容
TextMail string = `text/plain`
// 前端内容
HtmlMail string = `text/html`
)
func init() {
mail = gomail.NewMessage()
lock = new(sync.Mutex)
}
// SendMail
func SendMail(msg *Msg) error {
lock.Lock()
defer lock.Unlock()
defer mail.Reset()
mail.SetHeader("From", mail.FormatAddress(msg.User, msg.Name))
mail.SetHeader("To", msg.SendTo...)
mail.SetHeader("Subject", msg.Subject)
mail.SetBody(parseType(msg.ContentType), msg.Body)
d := gomail.NewDialer(msg.Host, msg.Port, msg.User, msg.Password)
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
return d.DialAndSend(mail)
}
// parseType
func parseType(mailType string) string {
var val string
mailType = strings.ToLower(mailType)
switch mailType {
case HtmlMail:
val = HtmlMail
default:
val = TextMail
}
return val
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。