TCL& IMAP - 获取原始.eml文件

时间:2011-11-14 11:39:22

标签: imap tcl fetch

我正在学习TCL并且正在尝试创建一个TCL项目,该项目使用IMAP获取未归档的消息,然后将它们添加到我的数据库中。我有连接,登录,获取和读取数据的基础知识都工作但现在我很困惑如何获取文件并保存它。

是否可以直接保存文件,或者我是否需要在单独获取标题,正文,附件等后以某种方式自己创建文件?

P.S。

我在这个问题上发现的任何东西都是PHP / C#或者除了TCL以外的任何东西!它们都有内置函数来获取数据然后保存。我找到了TCL的imap4库,但它似乎没有与PHP相同的功能。

2 个答案:

答案 0 :(得分:4)

使用:

FETCH <message ID> BODY.PEEK[]

获取完整的消息(正文+标题)。

答案 1 :(得分:2)

从我在互联网上看到的,“。eml”是较旧的软件称为“mbox格式”的东西,也就是说,它只是一个纯文本文件,其中包含一封电子邮件,因为它是通过网络传输的

根据我在section about the "FETCH" command in the IMAP RFC中看到的内容,FETCH FULL命令可以获取给定消息的全部内容。

因为在Tcl中写一些文件是不费脑子的,所以我只想尝试这条路线:

  1. 使用FETCH FULL获取完整信息;
  2. 在写入/追加模式下打开名称以“.eml”结尾的文件,将结果通道配置为具有“二进制”语义(通过调用chan config $fd -translation binary);
  3. 在此处写入提取的内容,关闭文件。
  4. 然后通过尝试将生成的文件导入Outlook或Thunderbird或其他任何内容来验证其工作原理。