首页 > 解决方案 > 如何使用 InputStream 发送带附件的电子邮件

问题描述

你好首先我从我的前端得到我的pdf

 @RequestMapping(value = "/enviarCorreoAdjunto", method = RequestMethod.POST)
 @ResponseBody
 ResponseMetadata enviarCorreoAdjunto(@RequestParam("file") MultipartFile multipartFile, @RequestParam("ruta") String Ruta,
        Model model) {
            String result; 
    boolean resultado = false;
            try {
        // System.out.println("MILYmultipartFile"+ multipartFile.getInputStream());
        resultado = procesoOperacionesDao.enviarCorreoAdjunto(Ruta, multipartFile.getInputStream());     
 ResponseMetadata metadata = new ResponseMetadata();
        metadata.setMessage("success");
        metadata.setData(result);
        metadata.setStatus(200);
        return metadata;
}

当我尝试使用 messageHelper.addAttachment("attachment",new ByteArrayResource(IOUtils.toByteArray(inputStream))) 时出现错误

@Override
    public boolean 
    enviarCorreoAdjunto(String targetPath, InputStream inputStream) throws Exception {

            System.out.println("PROBANDO INGRESO COREO");
            final MimeMessagePreparator messagePreparator = mimeMessage -> {
            final MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
            messageHelper.setFrom("automatizacion@gmail.com");
            messageHelper.setTo("hportillap@gmail.com");
            messageHelper.setSubject("REPORTE DE PLAN DE CUMPLIMIENTO");
            messageHelper.setText("PRUEBA", true);
            messageHelper.addAttachment("attachement",new ByteArrayResource(IOUtils.toByteArray(inputStream)));
            //messageHelper.addAttachment("attachement", new ByteArrayResource(inputStream.getBytes(StandardCharsets.UTF_8)), MediaType.TEXT_HTML.toString());
            };
            try {
                    javaMailSender.send(messagePreparator);
            } catch (final MailException e) {
                    e.printStackTrace();
            }           
            return true;
    }

当我在没有附件的情况下运行该功能时,它可以工作并且我收到了邮件

标签: javafileinputstreammime-message

解决方案


推荐阅读