Rest API для вызова почтовой службы
@GetMapping(value = "/sendMail/{id}")
public User sendMailToUser(@PathVariable final Integer id){
logger.info("In Mail Sending");
User user = userRepository.findById(id).orElseThrow(()-> new ResourceNotFoundException("User", "id", id));
System.out.println("Printing current user :: " + user.toString());
Mail mail = new Mail();
mail.setFrom("scsunil24@gmail.com");
mail.setMailTo(user.getEmail());
mail.setSubject("Email with Spring boot and thymeleaf template!");
Map<String, Object> objectMap = new HashMap<>();
objectMap.put("name", user.getName());
objectMap.put("sign", user.getPassword());
objectMap.put("location", user.getAddress().getCountry());
mail.setProps(objectMap);
emailService.sendEmail(mail);
logger.info("Send mail completed");
return user;
}
Класс обслуживания электронной почты
@Service
publi c class EmailService {
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private SpringTemplateEngine springTemplateEngine;
@Async
public void sendEmail(Mail mail){
final MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,
MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED, StandardCharsets.UTF_8.name());
Context context = new Context();
context.setVariables(mail.getProps());
final String processHtmlTemplate = springTemplateEngine.process("mail", context);
messageHelper.setTo(mail.getMailTo());
messageHelper.setText(processHtmlTemplate,true);
messageHelper.setSubject(mail.getSubject());
messageHelper.setFrom(mail.getFrom());
javaMailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
Конфигурация Thymeleaf
@ Конфигурация publi c class ThymeleafTemplateConfig {
@Bean
public SpringTemplateEngine springTemplateEngine(){
SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
springTemplateEngine.addTemplateResolver(htmlTemplateResolver());
return springTemplateEngine;
}
@Bean
public ITemplateResolver htmlTemplateResolver() {
final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("/templates/html/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCheckExistence(true);
templateResolver.setCacheable(false);
return templateResolver;
}
}
** Нужна помощь в создании задания, которое при вызове будет отправлять электронные письма всем получателям, присутствующим в базе данных. Пожалуйста, поделитесь только рабочим кодом **