package tool
import (
"errors"
"github.com/outakujo/utils"
"gopkg.in/gomail.v2"
)
type Email struct {
From string
Host string
Port int
UserName string
Password string
}
func (r *Email) Send(subject, htmlBody, attachFile, rename string, to ...string) error {
l := len(to)
if l == 0 {
return errors.New("to can not be empty")
}
m := gomail.NewMessage()
m.SetHeader("From", r.From)
m.SetHeader("To", to...)
m.SetHeader("Subject", subject)
m.SetBody("text/html", htmlBody)
if utils.FileIsExist(attachFile) {
if rename != "" {
setting := gomail.Rename(rename)
m.Attach(attachFile, setting)
} else {
m.Attach(attachFile)
}
}
d := gomail.NewDialer(r.Host, r.Port, r.UserName, r.Password)
return d.DialAndSend(m)
}
使用
package main
import (
"你的模塊名/tool"
"fmt"
)
func main() {
var em = &tool.Email{
From: "你的qq號@qq.com",
Host: "smtp.qq.com",
Port: 465, //使用SSL,端口號465或587
UserName: "你的qq號",
Password: "授權碼,不是qq郵箱密碼",
}
hb := "<h3>hello,世界</h3>" //支持html
err := em.Send("golang", hb, "", "", "接收方qq號@qq.com") //可以多個接收方
fmt.Println(err)
}
授權碼獲取方法,開啓IMAP/SMTP 服務,就可生成授權碼