小编Cra*_*tro的帖子

使用ColdFusion从Outlook .msg文件中提取附件

我正在构建一个系统,允许Intranet用户将文件拖放到div我们的ColdFusion站点上,然后在一些验证后会自动将它们上传到文件服务器.我的要求之一是:当上传的.msg文件是文件(Outlook电子邮件)时,提取任何作为该电子邮件附件的文件并单独上传.这可以使用org.apache.poi.hsmf.MAPIMessageJava对象.使用以下代码,我可以看到列出的每个附件对象.然后我可以获取他们的文件名和扩展名,并将每个文件名和扩展名保存到本地文件系统.

但是,如果附件是另一个.msg文件,则不起作用.当我调用getEmbeddedAttachmentObject()附加.msg文件时,它返回一个仅包含"undefined"的对象.非.msg文件返回一个二进制对象,然后我可以将其传递给FileWrite()ColdFusion函数.进一步检查MAPIMessage对象显示它有一个write()方法,但在调用它时我得到一个错误说明:

注意 - 对不起,此文件格式尚不支持写入.

这也得到了http://poi.apache.org上的文档的支持.

总而言之,我可以毫无问题地将每个电子邮件附件写入文件系统,除非附件是另一封电子邮件.我运气不好还是有另一种方法可以实现这一目标?

<cfscript>
  // Load test .msg into MAPIMessage object
  MAPIMessage = createObject("java", "org.apache.poi.hsmf.MAPIMessage");
  message = MAPIMessage.init('C:\Test\Test Email 1 Attachment.msg');

  // Get array of attached files
  attachments = message.getAttachmentFiles();

  // If attachments were found
  if(arrayLen(attachments) > 0) {

    // Loop over each attachment
    for (i=1; i LTE arrayLen(attachments); i++) {

      // Dump the …
Run Code Online (Sandbox Code Playgroud)

java email coldfusion outlook apache-poi

5
推荐指数
1
解决办法
939
查看次数

标签 统计

apache-poi ×1

coldfusion ×1

email ×1

java ×1

outlook ×1