2009-06-12 7 views
14

Qualcuno ha mai gestito un trascinamento di e-mail da thunderbird? qualsiasi codice di link di riferimento?Drag Drop Handling da Thunderbird

Desidero essere in grado di trascinare le e-mail da Thunderbird alla mia applicazione?

+0

Sarebbe bello avere un'estensione generica "thunderbird drag & dropper" con un backend riposante configurabile in modo che ogni trascinamento notificasse un URL in grado di gestire il codice. –

risposta

11

Sembra che non sia possibile. Anche se non riesco a trovare alcuna documentazione vera e propria, ecco quello che la mia sperimentazione ha trovato finora.

Thunderbird fornisce dati di goccia con i seguenti tipi MIME, durante il test contro un server IMAP:

  • text/x-moz-message - UTF-16 URL codificato che assomiglia imap-message://[email protected]/FOLDER#ID
  • text/x-moz-url - UTF-16 codificato URL che appare come imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • text/uri-list - (?) ASCII URL che assomiglia imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID"
  • _NETSCAPE_URL - (?) ASCII URL che assomiglia imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • application/x-moz-file-promise-url - UTF-16 codificato URL che assomiglia imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID?fileName=SUBJECT.eml
  • application/x-moz-file-promise - Vuoto
+0

Come spera a parte, quale strumento hai usato per visualizzare i dati di rilascio? – studgeek

4

Il codice di Thunderbird rilevante è here, ma AFAICS non è finita ... Quello che ho fatto stava scrivendo un Thunderbird estensione che sovrascrive l'evento draggesture di #threadTree treechildren e chiama una versione leggermente modificata di ThreadPaneOnDragStart che scrive il messaggio trascinato da qualche parte all'interno della directory temporanea (utilizzando SaveMessageToDisk), restituendo il nome del file come application/x-moz-file-promise (o qualsiasi altra cosa desideri catturare all'interno di te la tua applicazione).

Questo ha due inconvenienti. dal momento che viene creato il file durante il trascinamento inizia e non quando finisce:

  1. si potrebbe finire con i file inutili all'interno della directory temp, se l'utente interrompe l'operazione DND
  2. se il messaggio viene trascinato è grande, l'utente potrebbe provare un po 'di ritardo