Перетащите 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
- Если перетаскивание сообщения велико, пользователь может испытывать некоторое отставание