IMAP 处置对于附件为空



在我们的应用程序中,我们使用iMap从Gmail读取电子邮件并保存在数据库中,电子邮件中有两个附件(一个是pdf文件,另一个是数字签名文件)。 对于第一个文件 (pdf),我得到的处置为空并且无法处理附件,但对于第二个文件 (p7s),我获得了正确的处置值作为附件。

以下是附件的标题信息:

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

问题已解决,因为它是嵌套内容。如果处置为空,我必须遍历内容以查找附件。

相关内容

  • 没有找到相关文章

最新更新