code: func (service *IYOEmailAddressValidationService) RequestValidation(request *http.Request, username string, email string, confirmationurl string, langKey string) (key string, err error) {
  	valMngr := validation.NewManager(request)
  	info, err := valMngr.NewEmailAddressValidationInformation(username, email)
  	if err != nil {
  		log.Error(err)
  		return
  	}
  	err = valMngr.SaveEmailAddressValidationInformation(info)
  	if err != nil {
  		log.Error(err)
  		return
  	}
  
  	translationValues := tools.TranslationValues{
  		"emailvalidation_title":      nil,
  		"emailvalidation_text":       struct{ Email string }{Email: email},
  		"emailvalidation_buttontext": nil,
  		"emailvalidation_reason":     nil,
  		"emailvalidation_subject":    nil,
  		"emailvalidation_urlcaption": nil,
  	}
  
  	translations, err := tools.ParseTranslations(langKey, translationValues)
  	if err != nil {
  		log.Error("Failed to parse translations: ", err)
  		return
  	}
  
  	validationurl := fmt.Sprintf("%s?c=%s&k=%s&l=%s", confirmationurl, url.QueryEscape(info.Secret), url.QueryEscape(info.Key), langKey)
  	templateParameters := EmailWithButtonTemplateParams{
  		UrlCaption: translations["emailvalidation_urlcaption"],
  		Url:        validationurl,
  		Username:   username,
  		Title:      translations["emailvalidation_title"],
  		Text:       translations["emailvalidation_text"],
  		ButtonText: translations["emailvalidation_buttontext"],
  		Reason:     translations["emailvalidation_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([]string{email}, translations["emailvalidation_subject"], message)
  	key = info.Key
  	return
  }
docs: //RequestValidation validates the email address by sending an email