Commons Email
  1. Commons Email
  2. EMAIL-131

MimeMessageParser not able to read the inline attachments.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.3.1
    • Fix Version/s: 1.3.2
    • Labels:
      None

      Description

      Hi All,

      I am trying to extract attachments using MimeMessageParser. But unable to extract the attachment when i have mime part as below

      Content-Type: text/plain; charset=us-ascii;
      name="abc.txt"
      Content-Transfer-Encoding: 7bit
      Content-Disposition: attachment;
      filename="abc.txt"

      After looking into parse method,
      ======
      protected void parse(Multipart parent, MimePart part)
      throws MessagingException, IOException
      {
      if (part.isMimeType("text/plain") && (plainContent == null))

      { plainContent = (String) part.getContent(); }

      else
      {
      if (part.isMimeType("text/html") && (htmlContent == null))

      { htmlContent = (String) part.getContent(); }

      else
      {
      if (part.isMimeType("multipart/*"))
      {
      this.isMultiPart = true;
      Multipart mp = (Multipart) part.getContent();
      int count = mp.getCount();

      // iterate over all MimeBodyPart

      for (int i = 0; i < count; i++)

      { parse(mp, (MimeBodyPart) mp.getBodyPart(i)); }

      }
      else

      { this.attachmentList.add(createDataSource(parent, part)); }

      }
      }
      }
      ====

      so attachment is going to plainContent

      Can anybody please let me know. how can this going to work

      Do we need to consider Content-Disposition ? According to java mail documentation

      Thanks,
      Raju

        Issue Links

          Activity

          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Resolved Resolved
          32d 13h 38m 1 Thomas Neidhart 14/Sep/13 19:26
          Resolved Resolved Closed Closed
          40d 42m 1 Thomas Neidhart 24/Oct/13 20:09
          Thomas Neidhart made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Thomas Neidhart made changes -
          Link This issue is duplicated by EMAIL-134 [ EMAIL-134 ]
          Thomas Neidhart made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s 1.3.2 [ 12324666 ]
          Resolution Fixed [ 1 ]
          Hide
          Thomas Neidhart added a comment -

          In r1523299 applied a fix to correctly take the content-disposition header into account.

          Show
          Thomas Neidhart added a comment - In r1523299 applied a fix to correctly take the content-disposition header into account.
          Hide
          Thomas Neidhart added a comment -

          The Content-Disposition header is not yet taken into account. If there is no text body, your (plain text) attachment would be treated as the body content.

          It looks like that most of the email clients/libs will at least include an empty mime part as body, but it would make sense to treat your case correctly too.

          Show
          Thomas Neidhart added a comment - The Content-Disposition header is not yet taken into account. If there is no text body, your (plain text) attachment would be treated as the body content. It looks like that most of the email clients/libs will at least include an empty mime part as body, but it would make sense to treat your case correctly too.
          Raju Y made changes -
          Field Original Value New Value
          Description Hi All,

          I am trying to extract attachments using MimeMessageParser. But unable to extract the attachment when i have mime part as below

          Content-Type: text/plain; charset=us-ascii;
                  name="abc.txt"
          Content-Transfer-Encoding: 7bit
          Content-Disposition: attachment;
                  filename="abc.txt"

          After looking into parse method,
          ======
          170 protected void parse(Multipart parent, MimePart part)
          171 throws MessagingException, IOException
          172 {
          173 if (part.isMimeType("text/plain") && (plainContent == null))
          174 {
          175 plainContent = (String) part.getContent();
          176 }
          177 else
          178 {
          179 if (part.isMimeType("text/html") && (htmlContent == null))
          180 {
          181 htmlContent = (String) part.getContent();
          182 }
          183 else
          184 {
          185 if (part.isMimeType("multipart/*"))
          186 {
          187 this.isMultiPart = true;
          188 Multipart mp = (Multipart) part.getContent();
          189 int count = mp.getCount();
          190
          191 // iterate over all MimeBodyPart
          192
          193 for (int i = 0; i < count; i++)
          194 {
          195 parse(mp, (MimeBodyPart) mp.getBodyPart(i));
          196 }
          197 }
          198 else
          199 {
          200 this.attachmentList.add(createDataSource(parent, part));
          201 }
          202 }
          203 }
          204 }
          ====

          so attachment is going to plainContent

          Can anybody please let me know. how can this going to work

          Do we need to consider Content-Disposition ? According to java mail documentation

          Thanks,
          Raju
          Hi All,

          I am trying to extract attachments using MimeMessageParser. But unable to extract the attachment when i have mime part as below

          Content-Type: text/plain; charset=us-ascii;
                  name="abc.txt"
          Content-Transfer-Encoding: 7bit
          Content-Disposition: attachment;
                  filename="abc.txt"

          After looking into parse method,
          ======
              protected void parse(Multipart parent, MimePart part)
                  throws MessagingException, IOException
              {
                  if (part.isMimeType("text/plain") && (plainContent == null))
                  {
                      plainContent = (String) part.getContent();
                  }
                  else
                  {
                      if (part.isMimeType("text/html") && (htmlContent == null))
                      {
                          htmlContent = (String) part.getContent();
                      }
                      else
                      {
                          if (part.isMimeType("multipart/*"))
                          {
                              this.isMultiPart = true;
                              Multipart mp = (Multipart) part.getContent();
                              int count = mp.getCount();

                              // iterate over all MimeBodyPart

                              for (int i = 0; i < count; i++)
                              {
                                  parse(mp, (MimeBodyPart) mp.getBodyPart(i));
                              }
                          }
                          else
                          {
                              this.attachmentList.add(createDataSource(parent, part));
                          }
                      }
                  }
              }
          ====

          so attachment is going to plainContent

          Can anybody please let me know. how can this going to work

          Do we need to consider Content-Disposition ? According to java mail documentation

          Thanks,
          Raju
          Raju Y created issue -

            People

            • Assignee:
              Unassigned
              Reporter:
              Raju Y
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development