package utils import ( "bytes" "encoding/json" "html/template" "github.com/authorizerdev/authorizer/server/constants" "github.com/authorizerdev/authorizer/server/email" ) // SendVerificationMail to send verification email func SendVerificationMail(toEmail, token string) error { // The receiver needs to be in slice as the receive supports multiple receiver Receiver := []string{toEmail} Subject := "Please verify your email" message := `
` data := make(map[string]interface{}, 3) data["OrgLogo"] = constants.ORGANIZATION_LOGO data["OrgName"] = constants.ORGANIZATION_NAME data["AuthUrl"] = constants.AUTHORIZER_URL + "/verify_email?token=" + token message = AddEmailTemplate(message, data, "verify_email.tmpl") // bodyMessage := sender.WriteHTMLEmail(Receiver, Subject, message) return email.SendMail(Receiver, Subject, message) } // SendForgotPasswordMail to send verification email func SendForgotPasswordMail(toEmail, token, host string) error { if constants.RESET_PASSWORD_URL == "" { constants.RESET_PASSWORD_URL = constants.AUTHORIZER_URL + "/app/reset-password" } // The receiver needs to be in slice as the receive supports multiple receiver Receiver := []string{toEmail} Subject := "Reset Password" message := `
` data := make(map[string]interface{}, 3) data["OrgLogo"] = constants.ORGANIZATION_LOGO data["ToEmail"] = constants.ORGANIZATION_NAME data["AuthUrl"] = constants.RESET_PASSWORD_URL + "?token=" + token message = AddEmailTemplate(message, data, "reset_password_email.tmpl") return email.SendMail(Receiver, Subject, message) } func AddEmailTemplate(a string, b map[string]interface{}, templateName string) string { tmpl, err := template.New(templateName).Parse(a) if err != nil { output, _ := json.Marshal(b) return string(output) } buf := &bytes.Buffer{} err = tmpl.Execute(buf, b) if err != nil { panic(err) } s := buf.String() return s }