Как добавить вложение в электронную почту Apache James?

Извините за неосведомленность, но мне никогда раньше не приходилось настраивать почтовый сервер на Java, и мне только что удалось отправить простое электронное письмо с открытым текстом. Я использую Apache James в качестве собственного локального сервера. Сторонний почтовый сервер не подходит.

Я искал в Google и Stack Overflow любые руководства, которые показали бы мне, как можно прикрепить изображение или PDF-файл к электронному письму Джеймса, и ничего не нашел.

В настоящее время я использую Java с загрузкой Spring, и я могу успешно загружать несколько файлов и хранить их локально. Вот мой код:

   @RequestMapping(value="/uploadMultiples", method=RequestMethod.POST)
   public @ResponseBody String uploadMultiples(MultipartHttpServletRequest request){
       logger.info("POST /uploadMultiples");
       Map<String, MultipartFile> fileMap = request.getFileMap();
       for(String fileName:request.getFileMap().keySet()) {
           MultipartFile file = request.getFile(fileName);
           if (!file.isEmpty()) {
               try {
                   logger.info("file name:" + file.getName());
                   logger.info("original file name " + file.getOriginalFilename());
                   byte[] bytes = file.getBytes();
                   BufferedOutputStream stream =
                        new BufferedOutputStream(new FileOutputStream(new File(file.getOriginalFilename())));
                   stream.write(bytes);
                   stream.close();
               } catch (Exception e) {
                   return "You failed to upload " + file.getOriginalFilename() + " => " + e.getMessage();
               }
           } else {
               return "You failed to upload " + file.getOriginalFilename() + " because the file was empty.";
           }
       }return "success";

   }

Если кто-нибудь знает, как я могу просто прикрепить эти файлы к электронному письму и отправить его с помощью Apache James, это будет именно то, что я ищу.


person Snorlux    schedule 04.02.2016    source источник
comment
Я не понимаю, что вы хотите сделать. Вы хотите загрузить файлы на свой сервер, а затем запустить программу на своем сервере для отправки электронной почты с использованием этих файлов? Или вы хотите запустить программу на машине, которая содержит файлы перед загрузкой, а затем прикрепить файлы к сообщениям электронной почты, которые вы отправляете на свой сервер James? В любом случае прикрепить файл несложно, см. часто задаваемые вопросы по JavaMail. и примеры программ.   -  person Bill Shannon    schedule 04.02.2016


Ответы (1)


Код, который вы разместили, не имеет абсолютно никакого отношения к заголовку вопроса ???. Чтобы создать электронное письмо с вложением, не имеет значения, откуда пришли вложения, поэтому ваш код просто лишний шум (пожалуйста, поправьте меня, если я ошибаюсь).

Я предполагаю, что вы хотите отправить вложение с помощью почтового API Java

person lance-java    schedule 04.02.2016
comment
Ну, это то, что у меня есть, я могу загружать файлы и хранить их локально, поэтому мне было интересно, как я могу изменить свой код, чтобы прикрепить те файлы, которые я загружаю, в электронное письмо. - person Snorlux; 04.02.2016
comment
Для разработчика должно быть очевидно, что логика отправки электронного письма будет одинаковой независимо от того, откуда было отправлено вложение. Таким образом, включение кода для загрузки файла — это просто ненужный шум. Кроме того, ваши теги apache и spring-boot просто лишний шум. Я удивлен, что ты не упомянул, какого цвета футболка на тебе :) - person lance-java; 04.02.2016