r126 - trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job
Author: echatellier Date: 2014-06-03 09:30:29 +0200 (Tue, 03 Jun 2014) New Revision: 126 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/126 Log: Correction d'une erreur sur la gestion des pieces jointes lors de la reception des mails. Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-02 21:06:54 UTC (rev 125) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-06-03 07:30:29 UTC (rev 126) @@ -257,14 +257,19 @@ emailSource.append("\n").append(originalContent); email.setOriginalEmail(emailSource.toString()); + List<Attachment> attachements = new ArrayList<>(); if (message.isMimeType("multipart/*")) { - decomposeMultipartEmail(message, email, emailService); + decomposeMultipartEmail(attachements, message, email, emailService); // } else { // String content = IOUtils.toString(message.getInputStream(), charset); // email.setPlainContent(content); } - emailService.saveEmail(email, null, modifiedProperties.toArray(new String[modifiedProperties.size()])); + emailService.saveEmail(email, + attachements, + email.getClient() != null ? email.getClient().getCode() : null, + null, + modifiedProperties.toArray(new String[modifiedProperties.size()])); message.setFlag(Flags.Flag.DELETED, true); } @@ -285,11 +290,12 @@ * @param emailService email service * @throws Exception */ - protected void decomposeMultipartEmail(Part part, Email email, EmailService emailService) throws Exception { + protected void decomposeMultipartEmail(List<Attachment> attachments, Part part, Email email, EmailService emailService) throws Exception { DataSource dataSource = part.getDataHandler().getDataSource(); MimeMultipart mimeMultipart = new MimeMultipart(dataSource); int multiPartCount = mimeMultipart.getCount(); + for (int j = 0; j < multiPartCount; j++) { BodyPart bp = mimeMultipart.getBodyPart(j); Charset charset = getCharset(bp); @@ -306,7 +312,7 @@ // if it is multipart part, decompose it } else if (bp.isMimeType("multipart/*")) { - decomposeMultipartEmail(bp, email, emailService); + decomposeMultipartEmail(attachments, bp, email, emailService); // else, this is an attachment } else { @@ -347,7 +353,8 @@ attachmentFile.setFilename(dh.getName()); attachment.setOriginalFile(attachmentFile); - email.addAttachment(attachment); + //email.addAttachment(attachment); + attachments.add(attachment); } } }
participants (1)
-
echatellier@users.forge.codelutin.com