Есть ли способ открыть известную электронную почту Outlook через Java 11? (Интернет или локальный) - PullRequest
0 голосов
/ 28 марта 2019

Короткая версия:
Я хочу открыть любую конкретную электронную почту Outlook из моего приложения Java, либо локально через приложение Outlook, либо через веб-сайт в браузере. У меня уже есть информация об электронной почте, такая как папка, идентификатор сообщения, UID, отправитель, получатель и т. Д., Но нет идентификатора электронной почты, используемого в URL-адресе веб-сайта Outlook. Кто-нибудь знает способ сделать что-либо из этого через Java?

Длинная версия:
Я создаю программное обеспечение для своей компании на Java, которое имеет встроенный почтовый клиент для электронных писем Outlook, так что электронные письма могут быть связаны с заданиями различными способами. До сих пор мне удавалось добиться хорошего прогресса в разделе почтового клиента с точки зрения отображения списка электронных писем и возможности отображать выбранное электронное письмо, но недавно я осознал создание графического интерфейса для редактора электронной почты (отслеживание цепочки ответов, перетаскивание изображений для встроенных вложений и т. д.) - довольно сложная задача, которую я могу выполнить самостоятельно (HTML-редактор JavaFX может потребовать много работы).

Мое решение для бинтов на данный момент состоит в том, чтобы моя программа открывала выбранное письмо через:

  1. Некоторая (Windows 10) системная команда вызывает настольное приложение Outlook, чтобы показать электронную почту по какому-то идентификатору (может быть, UID?). На некотором уровне я знаю, что это возможно, потому что в нашей компании есть старая программа, написанная на C #, которая действительно может это сделать.

  2. Открытие системного браузера по умолчанию со ссылкой на «https://outlook.office365.com/mail/folder_name/id/insert_id_here". Это мое предпочтительное решение.

Вот мои проблемы с каждым вариантом:

  1. Кажется, я не нашел ни одного ресурса, который бы дал ответ на этот вопрос. Самые близкие я могу найти потоки, которые объясняют, как открыть почтовое приложение по умолчанию с опциями предварительного заполнения в / из / subject / body разделов (не говоря уже о том, что вы не можете предварительно заполнить тело чем-нибудь, кроме текста! для ответа / пересылки сообщений с форматированием HTML и вложениями!). Другая проблема заключается в том, что старая программа, о которой я упоминал, отображает электронные письма, находя файлы приложения Outlook (предположительно, локальный файл OST). Я понятия не имею, как старая программа может вызывать Outlook для показа электронных писем, и даже тогда есть вероятность, что нет эквивалента Java. Я, однако, использую JavaMail для загрузки своей почты, так как считаю, что лучше обращаться к почтовому серверу Outlook, чтобы получать / отправлять обновления почты, а не ждать синхронизации приложения Outlook. Это создает проблему, потому что даже если бы я знал, как вызывать Outlook, мое приложение может быть более современным, чем приложение Outlook (особенно если Outlook еще не открыт), и если вызов до обновления Outlook, он не сможет отобразить это.

  2. Опять же, я не могу найти ресурс для объяснения этих идентификаторов URL. Они не совпадают с UID почты, и они, похоже, не находятся где-либо в содержимом почты при получении почты через JavaMail. Максимум, что я смог получить из исследований, это то, что они назывались «длинными идентификаторами», так как они были просто длинными строками (казалось бы, непоследовательными), но это могло быть только выдуманным названием из статьи, поскольку я других ссылок на него не нашел. Существует вероятность того, что это может быть какой-то кодированный UID, но я не видел никаких примечаний о том, что JavaMail нужно расшифровывать, чтобы получить UID в документации. Я сомневаюсь, что смогу добиться большего прогресса с этой опцией, но если есть решение, подобное этому (возможно, какой-то сценарий, который открывает Outlook онлайн, выполняет поиск по некоторому идентификатору, например, по содержанию тела, и выводит первый результат? Я много о скриптах браузера) Я был бы рад это услышать.

...