Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 7

При попытке прочитать содержимое письма на mail.ru ошибка "NullPointerException"

09.08.2019, 19:03. Показов 1063. Ответов 4

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста разобраться. Необходимо найти письмо но почте mail.ru и сохранить из него вложение.
Но на строчке message.getContent(); вылетает ошибка NullPointerException
Вот что делаю
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Properties properties = new Properties();
 
        //Указываем свойства и значение для properties
        properties.put("mail.imap.user", "login@inbox.ru");
        properties.put("mail.imap.host", "imap.mail.ru");
        properties.put("user.password", "password");
        properties.put("mail.imap.ssl.enable", "true");
        properties.put("mail.store.protocol", "imaps");
        properties.put("mail.imap.port","993");
 
 
        Store store;
        Folder inbox;
        Message message;
 
        //Получить почтовую сессию
        Session session = Session.getInstance(properties);
        session.setDebug(false);
 
        store = session.getStore(properties.get("mail.store.protocol").toString());
        //подключаемся к почтовому серверу
        store.connect(properties.get("mail.imap.host").toString(), properties.get("mail.imap.user").toString(),properties.get("user.password").toString());
                //открываем её для чтения и записи
        inbox = store.getFolder("INBOX");
        inbox.open(Folder.READ_ONLY);
        String sep = File.separator;
        String path = "C\\result.txt";
        for (int i = 1; i <= inbox.getMessageCount(); i++) {
            message = inbox.getMessage(i);
            if (!message.getSubject().equals(subject)){
                continue;
            }
            Multipart mp = (Multipart)message.getContent();
            for (int j=0; j<mp.getCount(); j++) {
                Part part = mp.getBodyPart(j);
                String disposition = part.getDisposition();
                if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT)) || (disposition.equals(Part.INLINE)))) {
                    BufferedInputStream in = new BufferedInputStream(part.getInputStream());
                    BufferedOutputStream out = null;
                    byte[] buf = new byte[65535]; // буфер ввода/вывода
                    while (in.read(buf) != -1) {
                        out = new BufferedOutputStream(new FileOutputStream(path));
                    }
                    out.write(buf); // Запись
                }
            }
        }
При этом если выполнить этот же код, но подключаться не к мэйловской почте, а к outlook, то все проходит успешно

Буду благодарна за любую помощь
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2019, 19:03
Ответы с готовыми решениями:

Ошибка аутентификации при попытке отправки письма из собственной конфигурации 1С
Здравствуйте. Из собственной конфигурации 1С 8.3 (тек. версия платформы 8.3.16.1063) пытаюсь отправить письмо через почтовый сервер (сом...

ВКонтакте отображается ошибка при попытке прочитать сообщение
При нажатии на сообщение выпадает такое и оно не раскрывается. Браузер - Мозилла 48.0.2

Ошибка при попытке обновить содержимое в таблице
Здравствуйте, столкнулся с проблемой, помогите если не сложно) При попытке обновить записи в БД возникает ошибка типа поле не уникально,...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
09.08.2019, 19:10
Цитата Сообщение от Tintin Посмотреть сообщение
for (int i = 1; i <= inbox.getMessageCount(); i++) {
почему не с 0?
очевидно, что нет писем с какого то момента раз нулл кидает, поставь проверку на нулл или лучше дебаггером посмотри
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 7
09.08.2019, 19:20  [ТС]
к сожалению дело не в то, что письма нет. оно есть, можно взять тему письма, или отправителя( в дебагере как раз и смотрела это). Но содержимое получить не получается
Точнее, если в письме нет вложений, то getContent() пройдет без ошибок. Если вложение есть - неважно какого формата - то NullPointerException
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
09.08.2019, 19:31
Tintin, а может там есть письмо с вложениями но без содержимого?
Ящик то у тебя не увели? надо же было с паролями сюда выкладывать)))
0
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 7
09.08.2019, 19:53  [ТС]
ха-ха
письма есть всякие-разные. но ошибка только для тех, что имеют вложения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2019, 19:53
Помогаю со студенческими работами здесь

АКИП-4125/4 и EasyScope 3.0 - Ошибка при попытке прочитать сохраненные данные
Доброго времени суток. Недавно привезли к нам переносной осциллограф АКИП-4125/4. В комплекте с ним поставлялся диск с ПО EasyScope...

При попытке создания письма с данными регистрации на сервере возникает ошибка: разрешение отклонено.
Вот фрагмент программы, короче я не знаю, почему, но при попытке создания письма с данными регистрации на сервере возникает ошибка...

При попытке просмотреть содержимое модуля вылазит ошибка unexpected error 40230 (Excel VBA)
Тут скачал один проект в Excel. Вроде незащищенный. При попытке просмотреть содержимое модуля вылазит ошибка (см. заголовок темы). Можно,...

При попытке openConnection() у Database выдает java.lang.NullPointerException
У меня возникла след. проблема. Было прога на Java для использования БД Oracle использовалсь Борландовые фенечки типа dbSwing, DBCL....

Связь апплет - сервлет. nullpointerexception при попытке получить outputstream от URLConnection
вот кусок апплета, который должен коннектитьсяк сервлету, передавать с помощью потока строчку, и получать другую строчку с сервлета. при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru