Перетащите Drop Handling из Thunderbird

Кто-нибудь когда-либо обрабатывал перетаскивание сообщений электронной почты от thunderbird? любые ссылки ссылаются на код?

Я хочу, чтобы иметь возможность перетаскивать сообщения электронной почты из thunderbird в мое приложение?

Ответы

Ответ 1

Похоже, это невозможно. Хотя я не могу найти какую-либо фактическую документацию, вот что мои эксперименты нашли до сих пор.

Thunderbird предоставляет данные о снижении со следующими типами MIME при тестировании на сервере IMAP:

  • text/x-moz-message - URL-адрес, кодированный UTF-16, который выглядит как imap-message://[email protected]/FOLDER#ID
  • text/x-moz-url - кодированный URL UTF-16, который выглядит как imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • text/uri-list - ASCII (?) URL, который выглядит как imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID"
  • _NETSCAPE_URL - ASCII (?) URL, который выглядит как imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • application/x-moz-file-promise-url - URL-адрес, кодированный UTF-16, который выглядит как imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID?fileName=SUBJECT.eml
  • application/x-moz-file-promise - Пусто

Ответ 2

Соответствующий код Thunderbird здесь, но AFAICS он не закончен... Что я сделал, это написать расширение Thunderbird, которое переопределяет событие draggesture #threadTree treechildren и вызывает слегка измененную версию ThreadPaneOnDragStart, которая записывает перетаскиваемое сообщение где-то внутри временного каталога (используя SaveMessageToDisk), возвращая имя файла как application/x-moz-file-promise (или то, что вы хотели бы поймать внутри вашего приложения),

У этого есть два недостатка. поскольку файл создается, когда начинается перетаскивание, а не когда оно заканчивается:

  • вы можете получить бессмысленные файлы внутри каталога temp, если пользователь прервет операцию DND
  • Если перетаскивание сообщения велико, пользователь может испытывать некоторое отставание