2009-06-12 10 views
14

Est-ce que quelqu'un a déjà manipulé une goutte d'emails de thunderbird? des références liens code?Gérer le Drop Drop depuis Thunderbird

Je veux pouvoir glisser des e-mails de thunderbird à mon application?

+0

Ce serait génial d'avoir une extension "thunderbird drag & dropper" générique qui a un backend configurable reposant de sorte que chaque glisser déposer déposerait une URL capable de gérer le code. –

Répondre

11

Il semble que ce ne soit pas possible. Bien que je n'arrive pas à trouver de documentation, voici ce que mes expérimentations ont trouvé jusqu'à présent.

Thunderbird fournit des données de chute avec les types MIME suivants, lorsqu'ils sont testés sur un serveur IMAP:

  • text/x-moz-message - UTF-16 URL encodée qui ressemble imap-message://[email protected]/FOLDER#ID
  • text/x-moz-url - UTF-16 URL encodée qui ressemble comme imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • text/uri-list - (?) ASCII URL qui ressemble à imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID"
  • _NETSCAPE_URL - (?) ASCII URL qui ressemble à imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID
  • application/x-moz-file-promise-url - UTF-16 URL encodée qui ressemble imap://[email protected]:port/fetch%3EUID%3E/FOLDER%3EID?fileName=SUBJECT.eml
  • application/x-moz-file-promise - Vide
+0

En espérant mettre de côté rapidement, quel outil avez-vous utilisé pour afficher les données de dépôt? – studgeek

4

Le code correspondant Thunderbird est here, mais AFAICS il est pas fini ... Ce que je l'ai été en train d'écrire un Thunderbird extension qui remplace l'événement draggesture de #threadTree treechildren et appelle une version légèrement modifiée de ThreadPaneOnDragStart qui écrit le message déplacé quelque part dans le répertoire temporaire (en utilisant SaveMessageToDisk), en retournant le nom du fichier en tant que application/x-moz-file-promise (ou ce que vous voulez attraper dans yo votre application).

Cela a deux inconvénients. car le fichier est créé lors du déplacement commence et non quand elle se termine:

  1. vous pourriez vous retrouver avec des fichiers inutiles à l'intérieur du répertoire temporaire, si l'utilisateur avorte si le message traîné l'opération du MDN
  2. est grande, L'utilisateur peut rencontrer un certain décalage