В нашем приложении мы читаем электронные письма из 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-файл. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Какой язык? Какая библиотека? Возможно ли, что ваша библиотека неправильно обрабатывает многострочные заголовки? – Max
Я использую Grails, используя javax.mail, для анализа содержимого html с использованием jericho. Проблема заключается в том, что невозможно прочитать только заголовок pdf, а другие вложения - в порядке. – kmpsharma
Проблема разрешена, так как она была вложенным контентом. Мне нужно прокрутить содержимое, чтобы найти вложение, если disposition имеет значение null. – kmpsharma