He implementado una función para generar factura en formato PDF. Básicamente, hay dos botones, uno para imprimir y otro para correo electrónico. Entonces, cuando el usuario hace clic en el botón de correo electrónico, la factura debe enviarse a un correo electrónico específico.
La cosa es que estoy un poco confundido acerca de la implementación. Entonces, si alguien tiene alguna sugerencia, sería apreciable.
@Controller @RequestMapping("/mail") public class MailController { @Autowired public EmailService emailService; @RequestMapping(value = {"/send"}, method = RequestMethod.POST) public String sendEmailWithAttachment(Model model, HttpServletRequest request) { //Logic to create PDF file emailService.sendMessageWithAttachment(to,subject,body, pdfFile); } public interface EmailService{ sendMessageWithAttachment( String to, String subject, String text, String pathToAttachment, FileSystemResource pdfFileToSend); } @Component public class EmailServiceImpl implements EmailService { @Autowired private JavaMailSender emailSender; @Override public void sendMessageWithAttachment( String to, String subject, String text, String pathToAttachment, FileSystemResource pdfFileToSend) { // ... MimeMessage message = emailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom("noreply@baeldung.com"); helper.setTo(to); helper.setSubject(subject); helper.setText(text); helper.addAttachment("PDFFile", pdfFileToSend); emailSender.send(message); // ... }Luego, su Javascript llama a este punto final /mail/send, que debería generar el PDF para este usuario, crear un correo electrónico y enviar un correo electrónico usando spring-boot-mail-starter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>Referencias:
https://howtodoinjava.com/spring-boot2/send-email-with-attachment/#5