/
emial.go
64 lines (55 loc) · 1.83 KB
/
emial.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package message
import (
"strings"
"gopkg.in/gomail.v2"
)
type mail struct {
host string
port int
account string
password string
}
func NewMail(host string, port int, account, password string) *mail {
return &mail{host, port, account, password}
}
func (m *mail) SendText(subject, from, toStr, CcStr, body string) error {
d := gomail.NewDialer(m.host, m.port, m.account, m.password)
// d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
msg := gomail.NewMessage(
//发送文本时设置编码,防止乱码。 如果txt文本设置了之后还是乱码,那可以将原txt文本在保存时
//就选择utf-8格式保存
gomail.SetEncoding(gomail.Base64),
)
// 添加别名
msg.SetHeader("From", msg.FormatAddress(m.account, from))
// 发送给用户(可以多个)
msg.SetHeader("To", strings.Split(toStr, ",")...)
// 设置邮件主题
msg.SetHeader("Subject", subject)
msg.SetBody("text", body)
msg.SetHeader("Cc", strings.Split(CcStr, ",")...)
err := d.DialAndSend(msg)
return err
}
func (m *mail) SendTextWithAttach(subject, from, toStr, CcStr, body string, filePath []string) error {
d := gomail.NewDialer(m.host, m.port, m.account, m.password)
// d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
msg := gomail.NewMessage(
//发送文本时设置编码,防止乱码。 如果txt文本设置了之后还是乱码,那可以将原txt文本在保存时
//就选择utf-8格式保存
gomail.SetEncoding(gomail.Base64),
)
for _, fp := range filePath {
msg.Attach(fp)
}
// 添加别名
msg.SetHeader("From", msg.FormatAddress(m.account, from))
// 发送给用户(可以多个)
msg.SetHeader("To", strings.Split(toStr, ",")...)
// 设置邮件主题
msg.SetHeader("Subject", subject)
msg.SetHeader("Cc", strings.Split(CcStr, ",")...)
msg.SetBody("text", body)
err := d.DialAndSend(msg)
return err
}