使用
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 | package model import ( "fmt" "gopkg.in/gomail.v2" "net/smtp" "strings" ) const ( // 邮件服务器地址 MailHost = "smtp.163.com" // 端口 MailPort = 25 // 发送邮件用户账号 MailUser = "******@163.com" // 授权密码 MailPwd = "********" ) /* title 使用gomail发送邮件 @param []string mailAddress 收件人邮箱 @param string subject 邮件主题 @param string body 邮件内容 @return error */ func SendGoMail(mailAddress []string, subject string, body string) error {<!-- --> m := gomail.NewMessage() // 这种方式可以添加别名,即 nickname, 也可以直接用<code>m.SetHeader("From", MAIL_USER)</code> nickname := "gomail" m.SetHeader("From",nickname + "<" +MailUser+ ">") // 发送给多个用户 m.SetHeader("To", mailAddress...) // 设置邮件主题 m.SetHeader("Subject", subject) // 设置邮件正文 m.SetBody("text/html", body) d := gomail.NewDialer(MailHost, MailPort, MailUser, MailPwd) // 发送邮件 err := d.DialAndSend(m) return err } |
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 | package model import "testing" func TestSendGoMail(t *testing.T) {<!-- --> type args struct {<!-- --> mailAddress []string subject string body string } tests := []struct {<!-- --> name string args args wantErr bool }{<!-- --> // TODO: Add test cases. {<!-- --> name: "01", args: args{<!-- --> subject:"您好,这是gomail-text测试邮件", mailAddress:[]string{<!-- -->"******@qq.com"}, body:` 您的服务存在异常,请查收!!! `} , wantErr:false }, {<!-- --> name: "02", args: args{<!-- --> subject:"您好,这是gomail-html测试邮件", mailAddress:[]string{<!-- -->"*****@qq.com"}, body:`<html> <body> <h1>您的服务存在异常</h1> </body> </html> `} , wantErr:false }, } for _, tt := range tests {<!-- --> t.Run(tt.name, func(t *testing.T) {<!-- --> if err := SendGoMail(tt.args.mailAddress, tt.args.subject, tt.args.body); (err != nil) != tt.wantErr {<!-- --> t.Errorf("SendGoMail() error = %v, wantErr %v", err, tt.wantErr) } }) } } |