2015-01-26 43 views
0

在我們的應用程序中,我們正在使用iMap從Gmail中讀取電子郵件並保存在數據庫中,在電子郵件中有兩個附件(一個是pdf文件,另一個是數字簽名文件)。對於第一個文件(pdf),我得到的處置爲空,並且無法處理附件,但對於第二個文件(p7s)獲取正確的處置值作爲附件。imap配置爲空

以下是附件的標題信息:

------=_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返回null PDF文件。如果您需要更多信息,請告訴我。

+1

什麼語言?什麼庫?有沒有可能你的圖書館沒有正確處理多行標題? – Max 2015-01-26 22:57:37

+0

我正在使用Grails,使用javax.mail來使用jericho解析html內容。問題是爲什麼只有pdf標題不能被讀取和其他附件是好的。 – kmpsharma 2015-01-27 02:03:35

+0

問題已解決,因爲它是嵌套的內容。如果處置爲空,我必須遍歷內容才能找到附件。 – kmpsharma 2015-01-27 21:54:12

回答

0

問題已解決,因爲它是嵌套的內容。如果處置情況爲空,我必須遍歷內容以找到附件。