package utils import ( "fmt" "net/smtp" "sale/internal/config" ) func SendEmail(to, subject, body string) error { cfg := config.AppConfig.SMTP if cfg.Host == "" { return fmt.Errorf("SMTP not configured") } auth := smtp.PlainAuth("", cfg.User, cfg.Password, cfg.Host) msg := fmt.Sprintf( "From: %s\r\nTo: %s\r\nSubject: %s\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n%s", cfg.From, to, subject, body, ) return smtp.SendMail( fmt.Sprintf("%s:%s", cfg.Host, cfg.Port), auth, cfg.From, []string{to}, []byte(msg), ) } func SendVerifyEmail(to, code string) error { subject := "邮箱验证码" body := fmt.Sprintf(`
您的验证码是:%s
验证码有效期为30分钟,请尽快使用。
`, code) return SendEmail(to, subject, body) } func SendResetPasswordEmail(to, code string) error { subject := "重置密码验证码" body := fmt.Sprintf(`您的验证码是:%s
验证码有效期为30分钟,请尽快使用。
`, code) return SendEmail(to, subject, body) }