52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package drive
|
|
|
|
import (
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"gopkg.in/gomail.v2"
|
|
)
|
|
|
|
type MailMod struct {
|
|
Host string `json:"host" dc:"邮件服务器地址"`
|
|
Port int `json:"port" dc:"邮件服务器端口"`
|
|
User string `json:"user" dc:"邮件服务器用户名"`
|
|
Pass string `json:"pass" dc:"邮件服务器密码"`
|
|
From string `json:"from" dc:"邮件发送者"`
|
|
To string `json:"to" dc:"邮件接收者"`
|
|
Subject string `json:"subject" dc:"邮件主题"`
|
|
}
|
|
|
|
func MailLoad(Host string, port int, to string, subject string) *MailMod {
|
|
return &MailMod{
|
|
Host: Host,
|
|
Port: port,
|
|
User: "root",
|
|
Pass: "root",
|
|
From: "root",
|
|
To: to,
|
|
Subject: subject,
|
|
}
|
|
}
|
|
|
|
func (m MailMod) Send(value string) {
|
|
// 创建一个新的消息
|
|
obj := gomail.NewMessage()
|
|
// 设置发件人
|
|
obj.SetHeader("From", m.From)
|
|
// 设置收件人
|
|
obj.SetHeader("To", m.To)
|
|
// 设置邮件主题
|
|
obj.SetHeader("Subject", m.Subject)
|
|
// 设置邮件正文
|
|
obj.SetBody("text/plain", value)
|
|
|
|
// 创建 SMTP 拨号器,这里需要提供 SMTP 服务器地址、端口、发件人邮箱和密码
|
|
d := gomail.NewDialer(m.Host, m.Port, m.User, m.Pass)
|
|
|
|
// 发送邮件
|
|
if err := d.DialAndSend(obj); err != nil {
|
|
g.Log().Error(gctx.New(), err)
|
|
}
|
|
return
|
|
}
|