Ошибка при добавлении нескольких файлов в сообщение Spring Mime - PullRequest
0 голосов
/ 28 ноября 2018

Иметь форму, которая отправляется по электронной почте, когда пользователь заполняет и нажимает кнопку "Отправить".В форме также есть модальный режим, который «временно» сохраняет файлы в папку на сервере.Когда нажата кнопка отправки формы, мне нужно, чтобы все файлы в папке на сервере были прикреплены к электронной почте для ввода формы.

Попытка с использованием FileSystemResource и helper.addAttachment в файле службы электронной почты.Также попытался установить файлы в качестве переменной для вызова, оба способа не работают для меня.Я продолжаю получать исключение Java нулевого указателя.Любая идея, как добавить все файлы в электронное письмо как вложение или какая-то идея, что идет не так?

Вот контроллер для отправки формы:

@RequestMapping(value="/directBind",  params="send")
    public String send(Model model, @ModelAttribute(value="directBind") DirectBind directBind){
        List<String> businessAgencyList = directBind.getBusinessAgencyList();
        Mail mail = new Mail();
        mail.setFrom("no-reply@example.com");
        mail.setTo(new String[]{"example@example.com"});
        mail.setSubject("Data Checklist");

        Map<String, Object> mailModel = new HashMap<String, Object>();
        mail.setModel(mailModel);

        try {
            emailService.sendSimpleMessage(mail, directBind, storageService);
        } catch (Exception e) {
            e.printStackTrace();
            return ("redirect:/?sentMessageFail");
        }
        return ("redirect:/?sentMessage");
    }

    @RequestMapping(value="/email")
    public String email(){
        return "emailMessage";
    }
}

Вот служба электронной почты

public class EmailService {
   private JavaMailSender javaMailSender;

    @Autowired
    public EmailService(JavaMailSender javaMailSender){
        this.javaMailSender = javaMailSender;
    }

    @Autowired
    private SpringTemplateEngine templateEngine;
    
 public void sendSimpleMessage(Mail mail, DirectBind directBind, StorageService storage) throws MessagingException, IOException {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message,
                MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
                StandardCharsets.UTF_8.name());

        helper.addAttachment("Mail_Icon.png", new ClassPathResource("static/images/Mail_Icon.png"));

        Context context = new Context();
        context.setVariables(mail.getModel());
        context.setVariable("directBind",directBind);
        String html = templateEngine.process("emailMessage", context);

        helper.setTo(mail.getTo());
        helper.setText(html, true);
        helper.setSubject(mail.getSubject());
        helper.setFrom(mail.getFrom());


        FileSystemResource file= new FileSystemResource(new File(storage.getUploadDir()));
        helper.addAttachment("attachment", file);

        javaMailSender.send(message);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...