feat(utils): 新增工具类:邮箱、请求
This commit is contained in:
54
pkg/email/email.go
Normal file
54
pkg/email/email.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package email
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"gxy/config"
|
||||
|
||||
"gopkg.in/gomail.v2"
|
||||
)
|
||||
|
||||
var (
|
||||
host = config.GlobalConfig.Email.SMTPServer
|
||||
port = config.GlobalConfig.Email.Port
|
||||
username = config.GlobalConfig.Email.Username
|
||||
password = config.GlobalConfig.Email.Password
|
||||
)
|
||||
|
||||
// Email 发送器结构
|
||||
type Email struct {
|
||||
dialer *gomail.Dialer
|
||||
from string
|
||||
}
|
||||
|
||||
// NewEmail 创建一个邮件发送器实例
|
||||
func NewEmail() *Email {
|
||||
// 获取配置信息
|
||||
host := config.GlobalConfig.Email.SMTPServer
|
||||
port := config.GlobalConfig.Email.Port
|
||||
username := config.GlobalConfig.Email.Username
|
||||
password := config.GlobalConfig.Email.Password
|
||||
|
||||
// fmt.Printf("%v %v %v %v\n", host, port, username, password)
|
||||
dialer := gomail.NewDialer(host, port, username, password)
|
||||
dialer.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
||||
return &Email{
|
||||
dialer: dialer,
|
||||
from: username,
|
||||
}
|
||||
}
|
||||
|
||||
// Send 发送邮件,支持 HTML 内容
|
||||
func (e *Email) Send(to string, subject string, body string) error {
|
||||
msg := gomail.NewMessage()
|
||||
msg.SetHeader("From", e.from)
|
||||
msg.SetHeader("To", to)
|
||||
// msg.SetHeader("Cc", "benben@5700.cf")
|
||||
msg.SetHeader("Subject", subject)
|
||||
msg.SetBody("text/html", body)
|
||||
|
||||
if err := e.dialer.DialAndSend(msg); err != nil {
|
||||
return fmt.Errorf("发送邮件失败: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user