code: func (service *IYOEmailAddressValidationService) RequestPasswordReset(request *http.Request, username string, emails []string, langKey string) (key string, err error) {
  	pwdMngr := password.NewManager(request)
  	token, err := pwdMngr.NewResetToken(username)
  	if err != nil {
  		return
  	}
  	if err = pwdMngr.SaveResetToken(token); err != nil {
  		return
  	}
  
  	translationValues := tools.TranslationValues{
  		"passwordreset_title":      nil,
  		"passwordreset_text":       nil,
  		"passwordreset_buttontext": nil,
  		"passwordreset_reason":     nil,
  		"passwordreset_subject":    nil,
  		"passwordreset_urlcaption": nil,
  	}
  
  	translations, err := tools.ParseTranslations(langKey, translationValues)
  	if err != nil {
  		log.Error("Failed to parse translations: ", err)
  		return
  	}
  
  	passwordreseturl := fmt.Sprintf("https://%s/login?lang=%s#/resetpassword/%s", request.Host, langKey, url.QueryEscape(token.Token))
  	templateParameters := EmailWithButtonTemplateParams{
  		UrlCaption: translations["passwordreset_urlcaption"],
  		Url:        passwordreseturl,
  		Username:   username,
  		Title:      translations["passwordreset_title"],
  		Text:       translations["passwordreset_text"],
  		ButtonText: translations["passwordreset_buttontext"],
  		Reason:     translations["passwordreset_reason"],
  		LogoUrl:    fmt.Sprintf("https://%s/assets/img/its-you-online.png", request.Host),
  	}
  	message, err := tools.RenderTemplate(emailWithButtonTemplateName, templateParameters)
  	if err != nil {
  		return
  	}
  	go service.EmailService.Send(emails, translations["passwordreset_subject"], message)
  	key = token.Token
  	return
  }
docs: //RequestPasswordReset Request a password reset