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 }