2015-02-21 3 views
4

Я попытался найти какой-то ответ или даже намек на то, как это сделать, но не повезло.Проверка вложений с использованием javamail без получения содержимого сообщения

Я хочу проверить, есть ли в сообщениях электронной почты какие-либо вложения. Но если я использую предложил код:

Object content = bPart.getContent(); 

if (content instanceof String) { 
    if (Part.ATTACHMENT.equalsIgnoreCase(bPart.getDisposition()) || StringUtils.isNotBlank(bPart.getFileName())) { 
     // It's attachment 
     haveAttachment = true; 
    } 
    else { 
     // It's text or html 
     emailBody = content.toString(); 
    } 
} 
else if (content instanceof InputStream) { 
    if (Part.ATTACHMENT.equalsIgnoreCase(bPart.getDisposition()) || StringUtils.isNotBlank(bPart.getFileName())) { 
     // It's attachment 
     haveAttachment = true; 
    } 
} 

я должен использовать функцию getContent() в моем сообщении электронной почты и сообщение автоматически помечается как ВИДЕЛИ (чтение) на сервере.

Может ли кто-нибудь помочь мне написать простую функцию, чтобы получить основную информацию о сообщении электронной почты и отобразить, если в сообщении есть какие-либо вложения без, чтобы получить весь контент сообщения? На самом деле мне нужна помощь только с вложениями, потому что я уже знаю, как получить другие базовые поля заголовка, и они не запрашивают метод getContent(), и они не отмечают мое письмо как SEEN.

Как обычный почтовый клиент делает это? Я думаю, что должно быть быстро и простой способ проверить, есть ли вложения для электронной почты.

Спасибо заранее!

Редактировать: В качестве альтернативы, есть ли способ использовать функцию getContent() без маркировки электронной почты, как SEEN?

ответ

2

Я не знаю, где вы получили этот «предложенный» код, но это, конечно, не с веб-сайта JavaMail.

Вы хотите прочитать это JavaMail FAQ entry.

Чтобы проверить тип MIME детали, используйте метод isMimeType. Вы можете найти пример в msgshow.java sample program.

+0

На данный момент для меня не важно, что такое MIME-тип. Я просто хочу знать, есть ли какие-либо вложения. Кроме того, вы получаете предложенный код, если вы реализуете то, что они сказали в своем FAQ (вы просматриваете сообщение, которое ищет часть, которая является вложением). – milosh

+0

Проверка типа MIME заключается в том, как вы определяете, есть ли вложение без фактической загрузки какого-либо содержимого. Как часто задают вопросы, «имеет ли это сообщение вложения?» это не простой вопрос для ответа в общем случае. Если вас не волнуют необычные случаи, это немного проще. –

+0

Чтобы получить MIME-тип сообщения, мне нужно сначала его получить, как показано в разделе часто задаваемых вопросов «Как найти основной текст сообщения в сообщении с прикрепленными файлами?». Пожалуйста, если вы теперь можете читать MIME-тип сообщения (или части сообщения), не получая его контент, это было бы очень полезно для меня. – milosh

Смежные вопросы