package main import ( "fmt" "math/rand" "os" "strconv" "time" "gopkg.in/gomail.v2" ) func GenerateCode() string { rand.Seed(time.Now().UnixNano()) return fmt.Sprintf("%06d", rand.Intn(1000000)) } func SendAuthEmail(recipient string, code string) error { smtpHost := os.Getenv("EMAIL_HOST") smtpPortStr := os.Getenv("EMAIL_PORT") smtpUser := os.Getenv("EMAIL_USER") smtpPass := os.Getenv("EMAIL_PASS") smtpPort, _ := strconv.Atoi(smtpPortStr) subject := os.Getenv("EMAIL_SUBJECT") body := os.Getenv("EMAIL_BODY") m := gomail.NewMessage() m.SetHeader("From", smtpUser) m.SetHeader("To", recipient) m.SetHeader("Subject", subject) m.SetBody("text/plain", body+code) d := gomail.NewDialer(smtpHost, smtpPort, smtpUser, smtpPass) if err := d.DialAndSend(m); err != nil { return err } return nil }