我想創建一個應用程序,其中用戶將.msg文件拖入我的Web應用程序中。然後,ColdFusion會提取以下字段:名稱,發件人電子郵件,主題等,並將其預填充爲可供提交的表單。我已經使用「讀取.msg ColdFusion」,但似乎無法找到任何信息。當我執行FileRead()
時,我只看到亂碼ÐÏࡱá > þÿ
,因爲它是加密的。這甚至有可能嗎?我希望有人能指出我正確的方向。我也願意嘗試不同的方法。ColdFusion:從.msg文件中提取信息
回答
正如@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>
FileRead()
用於文本文件。如果你看到亂碼,那是因爲它是一個二進制文件。嘗試FileReadBinary()
。
我得到'複雜的對象類型不能轉換爲簡單values.' – isurfbecause 2013-05-10 00:58:23
你能發佈一些代碼嗎?你確定你正在傳遞一個字符串到函數中嗎? – imthepitts 2013-05-10 01:32:39
我的代碼基本上是'FileReadBinary(「upload/mail.msg」)'.msg是某種加密的outlook郵件文件。 – isurfbecause 2013-05-10 01:36:58
- 1. 從SSIS XML文件中提取信息?
- 2. 從HTML文件中提取信息
- 3. 從Global.ascx文件中提取信息
- 4. 如何從文件中提取信息
- 5. 從文件中提取信息
- 6. 從文件中提取信息
- 7. 從prop文件中提取信息
- 8. Powershell,從文本文件提取信息
- 9. 從.MSG附件中獲取郵件項目詳細信息
- 10. 從mongoDB中提取信息
- 11. 從xml中提取信息
- 12. 從dictionary.description中提取信息?
- 13. 從XML中提取信息
- 14. 從api中提取信息
- 15. 從array_count_values中提取信息
- 16. 從DTD中提取信息
- 17. 從XCUIElement中提取信息
- 18. 從$中提取信息?
- 19. 從xml中提取信息
- 20. 從文本中提取特定信息
- 21. 從MS Word中提取文本信息
- 22. 從網頁中提取文本信息
- 23. 如何使用Powershell從.msg文件中提取郵件標題?
- 24. 如何從msg文件中提取附件
- 25. 從樹中提取的信息結構化文本文件
- 26. 強制iMacro從文本文件或Excel中提取信息?
- 27. 從非常規文本文件中提取信息? (Python)
- 28. 使用Perl從文本文件中提取信息
- 29. 從大型結構化文本文件中提取信息
- 30. 從窗口的.evtx文件中提取審計事件信息
嗨,謝謝你幫助我。我也想知道消息何時發送,所以我嘗試了'getMessageDate()',但它給了我一個錯誤的日期。例如,昨天發送的郵件'getMessageDate()'今天會返回一個日期。任何煽動? – isurfbecause 2013-05-10 22:35:36
我在CF10中看不到這種方法。你正在加載更新版本的POI嗎?只是猜測,但也許它不能解析日期,只是今天回落。有*可能*在CF日誌文件的某處出現錯誤消息(取決於POI版本...),但您可能需要檢查。 – Leigh 2013-05-11 00:42:09