Как прочитать и отправить почтовое сообщение Java, написанное с помощью Message.writeto ()?

У меня есть рабочий код, который загружает сообщения из учетной записи pop3 и обрабатывает их. Теперь хочу записать их в отдельные файлы и обрабатывать на ночь. Для этого использую Message.writeTo(FileOutputStream) и работает, получаю кучу файлов.

Теперь я хочу их прочитать и обработать, но не могу создать сообщение или MimeMessage из файла или FileInputStream, и нет метода Message.readFrom(FileInputStream).

Я могу читать из файлов eml, но для создания сообщения с помощью этого конструктора MimeMessage(javax.mail.Session session,java.io.InputStream is) требует сеанса, и я не могу создать новый.

Все примеры в Интернете показывают, как использовать writeTo(), отправлять почту, получать почту и создавать почту с использованием жестко закодированных данных, но ни один не говорит, как читать из файла.

Как я могу создать новое сообщение из файла writeTo()?

Почему вы не можете «создать новый»? Просто создайте новый пустой сеанс (например, Session.getInstance(new Properties())), если вам нужно только его загрузить, или создайте правильно заполненный сеанс, если вам также нужно его отправить.

Mark Rotteveel 04.01.2019 12:25

Я попытался использовать нулевой сеанс, но получил исключение NullPointerException. Не пробовал с пустой сессией. Мне не нужно отправлять сообщения, я обрабатываю их только ночью (извлекаю вложения в формате Excel, конвертирую их и вставляю данные в систему)

Eduardo 04.01.2019 12:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
166
0

Другие вопросы по теме