14

有没有人处理过来自雷鸟的电子邮件的拖放?任何参考链接代码?

我希望能够将电子邮件从 Thunderbird 拖到我的应用程序中吗?

4

2 回答 2

11

看起来是不可能的。虽然我似乎找不到任何实际的文档,但这是我迄今为止的实验所发现的。

在针对 IMAP 服务器进行测试时,Thunderbird 提供具有以下 MIME 类型的丢弃数据:

  • text/x-moz-message- UTF-16 编码的 URL,看起来像imap-message://user@server/FOLDER#ID
  • text/x-moz-url- UTF-16 编码的 URL,看起来像imap://user@server:port/fetch%3EUID%3E/FOLDER%3EID
  • text/uri-list- ASCII (?) URL 看起来像imap://user@host:port/fetch%3EUID%3E/FOLDER%3EID"
  • _NETSCAPE_URL- ASCII (?) URL 看起来像imap://user@host:port/fetch%3EUID%3E/FOLDER%3EID
  • application/x-moz-file-promise-url- UTF-16 编码的 URL,看起来像imap://user@host:port/fetch%3EUID%3E/FOLDER%3EID?fileName=SUBJECT.eml
  • application/x-moz-file-promise- 空的
于 2010-06-22T13:14:59.763 回答
4

相关的 Thunderbird 代码在这里,但 AFAICS 还没有完成......我所做的是编写一个 Thunderbird 扩展,它覆盖draggesture事件#threadTree treechildren并调用稍微修改的版本ThreadPaneOnDragStart,将拖动的消息写入临时目录内的某处(使用SaveMessageToDisk),将文件名返回为application/x-moz-file-promise(或您想在应用程序中捕获的任何内容)。

这有两个缺点。因为文件是在拖动开始而不是结束时创建的:

  1. 如果用户中止 DND 操作,您最终可能会在临时目录中得到无意义的文件
  2. 如果被拖动的消息很大,用户可能会遇到一些延迟
于 2012-10-24T15:45:32.013 回答