@Bean
 public freemarker.template.Configuration freemakerConfig()
     throws IOException, URISyntaxException {
   freemarker.template.Configuration cfg =
       new freemarker.template.Configuration(freemarker.template.Configuration.VERSION_2_3_22);
   cfg.setDirectoryForTemplateLoading(
       Paths.get(this.getClass().getClassLoader().getResource("/template").toURI()).toFile());
   cfg.setDefaultEncoding("UTF-8");
   cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
   return cfg;
 }
 @Bean
 public Template challengeEmployerMailTemplateVi(freemarker.template.Configuration freemakerConfig)
     throws IOException {
   Template template = freemakerConfig.getTemplate("challengeEmployerEmail.vi.ftl");
   return template;
 }
 @Bean
 public Template dailyChallengeSummaryMailTemplateVi(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("challengeDailySummary.vi.ftl");
   return template;
 }
 @Bean
 public Template onBoardingMailTemplateVi(freemarker.template.Configuration freemakerConfig)
     throws IOException {
   Template template = freemakerConfig.getTemplate("onboarding.vi.ftl");
   return template;
 }
 @Bean
 public Template alertEventOrganiserMailTemplateVi(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("webinar.vi.ftl");
   return template;
 }
 @Bean
 public Template jobAlertMailTemplateVi(freemarker.template.Configuration freemakerConfig)
     throws IOException {
   Template template = freemakerConfig.getTemplate("jobAlert.vi.ftl");
   return template;
 }
 @Bean
 public Template alertTechloopiesPostJobMailTemplateEn(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("alertTechloopiesApplyJob.en.ftl");
   return template;
 }
 @Bean
 public Template alertEmployerPostJobMailTemplateVi(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("alertEmployerPostJob.vi.ftl");
   return template;
 }
 @Bean
 public Template alertEmployerChallengeMailTemplateEn(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("alertEmployerChallenge.en.ftl");
   return template;
 }
 @Bean
 public Template confirmUserJoinChallengeMailTemplateVi(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("confirmUserJoinChallenge.vi.ftl");
   return template;
 }
 @Bean
 public Template postChallengeUpdateMailTemplateEn(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("updateChallenge.en.ftl");
   return template;
 }
 @Bean
 public Template notifyChallengeTimelineMailTemplateEn(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("notifyChallengeTimeline.en.ftl");
   return template;
 }
 @Bean
 public Template getPromotedTemplateVi(freemarker.template.Configuration freemakerConfig)
     throws IOException {
   Template template = freemakerConfig.getTemplate("getPromoted.vi.ftl");
   return template;
 }
 @Bean
 public Template salaryReviewReportTemplateVi(freemarker.template.Configuration freemakerConfig)
     throws IOException {
   Template template = freemakerConfig.getTemplate("salaryReviewReport.vi.ftl");
   return template;
 }
 @Bean
 public Template citibankCreditCardPromotionTemplate(
     freemarker.template.Configuration freemakerConfig) throws IOException {
   Template template = freemakerConfig.getTemplate("citibankCreditCardPromotion.ftl");
   return template;
 }