我想制作一个应用程序,用户将 .msg 文件拖入我的网络应用程序。然后 ColdFusion 将提取以下字段:姓名、发件人电子邮件、主题等,并将其预填充到准备提交的表单中。我用谷歌搜索“阅读 .msg ColdFusion”,但似乎找不到任何信息。当我执行 a 时,FileRead()
我只看到乱码ÐÏࡱá > þÿ
,因为它是加密的。这甚至可能吗?我希望有人能指出我正确的方向。我也愿意尝试不同的方法。
问问题
1224 次
2 回答
7
正如@imthepitts 提到的,该文件没有加密,它只是二进制文件。然而,仅仅加载字节是不够的fileReadBinary()
。您需要一个能够理解.msg 文件格式并能够解析其内容的工具。
如果您进行快速搜索,有很多工具能够解析 .msg 文件(大多数是 java 或 .net)。一种这样的工具是POI 的 HSMF(可怕的愚蠢邮件格式)。它已经内置在 CF 中。所以你可能想从那里开始。
这是一个从HSMF 示例翻译而来的快速而肮脏的示例:
<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>
于 2013-05-10T02:17:59.187 回答
1
FileRead()
用于文本文件。如果您看到乱码,那是因为它是一个二进制文件。试试FileReadBinary()
。
于 2013-05-10T00:55:46.693 回答