【问题标题】:ColdFusion: Extract information from a .msg fileColdFusion:从 .msg 文件中提取信息
【发布时间】:2013-05-10 00:39:49
【问题描述】:

我想制作一个应用程序,用户将 .msg 文件拖入我的网络应用程序。然后 ColdFusion 将提取以下字段:姓名、发件人电子邮件、主题等,并将其预先填充到准备提交的表单中。我用谷歌搜索“阅读 .msg ColdFusion”,但似乎找不到任何信息。当我执行FileRead() 时,我只看到乱码ÐÏࡱá > þÿ,因为它是加密的。这甚至可能吗?我希望有人能指出我正确的方向。我也愿意尝试不同的方法。

【问题讨论】:

    标签: coldfusion coldfusion-9


    【解决方案1】:

    正如@imthepitts 提到的,该文件没有加密,它只是二进制文件。但是,仅使用 fileReadBinary() 加载字节是不够的。您需要一个能够理解format of .msg files 并能够解析其内容的工具。

    如果您进行快速搜索,有很多工具能够解析 .msg 文件(大多数是 java 或 .net)。一种这样的工具是POI's HSMF (Horrible Stupid Mail Format)。它已经内置在 CF 中。所以你可能想从那里开始。

    这是一个从HSMF examples翻译过来的又快又脏的例子:

    <cfscript>
        pathToFile = "c:/path/to/someMessage.msg";
        MAPIMessage = createObject("java", "org.apache.poi.hsmf.MAPIMessage");
        message = MAPIMessage.init(pathToFile);
    
    
        try {
            WriteOutput("From: "& message.getDisplayFrom() &"<hr>");
            WriteOutput("To: "& message.getDisplayTo() &"<hr>");
            WriteOutput("CC: "& message.getDisplayCC() &"<hr>");
            WriteOutput("BCC: "& message.getDisplayBCC() &"<hr>");
            WriteOutput("Subject: "& message.getSubject() &"<hr>");
            WriteOutput("Body: "& message.getTextBody() &"<hr>");
        } catch (org.apache.poi.hsmf.exceptions.ChunkNotFoundException e) {
            WriteDump(e);
        }
    </cfscript>
    

    【讨论】:

    • 嘿,感谢您帮助我。我还想知道消息是什么时候发送的,所以我尝试了getMessageDate(),但是它给了我一个错误的日期。例如,昨天发送的邮件getMessageDate() 将返回今天的日期。对此有什么煽动?
    • 我在 CF10 中没有看到这种方法。您是否正在加载更新版本的 POI?只是一个猜测,但也许它无法解析日期而只是回到今天。 可能在 CF 日志文件的某处出现错误消息(取决于 POI 版本...),但您可能需要检查。
    【解决方案2】:

    FileRead() 用于文本文件。如果您看到乱码,那是因为它是一个二进制文件。试试FileReadBinary()

    【讨论】:

    • 我收到Complex object types cannot be converted to simple values.
    • 你能发布一些你的代码吗?您确定要将字符串传递给函数吗?
    • 我的代码基本上是FileReadBinary("upload/mail.msg") .msg 是某种加密的 Outlook 邮件文件。
    • 如果文件是加密的,你指望coldfusion怎么知道并解密它?
    • @imthepitts,我对这个答案的投票使您的声誉达到 4 位数。 Jolly 干得好,你欠我一杯啤酒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    相关资源
    最近更新 更多