2015-01-26 4 views
0

В нашем приложении мы читаем электронные письма из Gmail с помощью iMap и сохраняем в БД. В электронной почте есть два вложения (один - файл в формате pdf, а другой - файл цифровой подписи). Для первого файла (pdf) я получаю disposition null и не могу обработать вложение, но для второго файла (p7s), получающего правильное значение диспозиции в качестве вложения.imap disposition имеет значение null для вложения

Ниже приводится информация заголовка вложений:

------=_NextPart_001_0025_01D03944.5B3A2140 
Content-Type: application/pdf; 
       name="USXMS III Draft PUS - VOPR # 15-814.pdf" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
       filename="USXMS III Draft PUS - VOPR # 15-814.pdf" 


    ------=_NextPart_000_0024_01D03944.5B3A2140 
Content-Type: application/pkcs7-signature; name="smime.p7s" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7s" 

Ниже соответствующий код для обработки вложения электронной почты:

//Process attchements of email 
protected processAttachments(def workItem, def message) { 
    int attachmentCount = 0 
    def content = message.content 
    if (content instanceof Multipart) { 
     for (cntr in 0..(content.count - 1)) { 
      def bodyPart = content.getBodyPart(cntr) 
      def disposition = bodyPart.getDisposition() 
      println("Disposition is " + disposition + ".");// returns null for pdf 
      if (Part.ATTACHMENT.equalsIgnoreCase(disposition)) { 
       if (this.saveAttachments(workItem, bodyPart)) { 
        attachmentCount++ 
       } 
      } 
     } 
    } 
    return attachmentCount 
} 

Так выше код getDisposition возвращает нуль для PDF-файл. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

+1

Какой язык? Какая библиотека? Возможно ли, что ваша библиотека неправильно обрабатывает многострочные заголовки? – Max

+0

Я использую Grails, используя javax.mail, для анализа содержимого html с использованием jericho. Проблема заключается в том, что невозможно прочитать только заголовок pdf, а другие вложения - в порядке. – kmpsharma

+0

Проблема разрешена, так как она была вложенным контентом. Мне нужно прокрутить содержимое, чтобы найти вложение, если disposition имеет значение null. – kmpsharma

ответ

0

Проблема разрешена, так как она была вложенным контентом. В случае отклонения null я должен пройти через содержимое, чтобы найти вложения (ы).