При попытке загрузить почту с вложениями из gmail моя тестовая почта содержит текстовый файл в качестве вложения.
Часть вложения возвращает текстовый тип содержимого вложения и даже имя файла правильно.Но условие цикла над вложением InputStream никогда не является ненулевым.
После небольшого количества проб и ошибок выяснилось, что контент для text / plain доступен с использованием метода getContent для этой части (в приведенном ниже примере ввод вызова
att_mbp.getContent()
содержимое в прикрепленном текстовом файле)
if (BodyPart.ATTACHMENT.equalsIgnoreCase(att_mbp.getDisposition())) {
att_mbp.getContentType();
// process each attachment
// read the filename
file = att_mbp.getFileName();
InputStream stream = att_mbp.getInputStream();
BufferedInputStream br = new BufferedInputStream(stream);
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(file));
while (br.available() > 0) {
// this loop is never executed for text/plain
bout.write(br.read());
}
bout.flush();
bout.close();
}
Мой вопрос: почему текстовое / простое вложение доступно только из getContent (), а не из присоединенного экземпляра InputStream тоже?