想問各位大神有沒有什麼方法能夠達成這樣的目的
重要上要能夠讀取包信件內容 希望能夠用JavaScript 去達成
https://www.codeproject.com/Tips/863192/Reading-Outlook-Emails-Contents-using-JavaScript
這個網頁內容依樣畫葫蘆是行不通的,
因為它在introduction就有說到:
這個範例是要把特定的mail搬到Sharepoint2007上面轉成列表形式,
樓主沒有同樣環境照著同樣步驟做怎能不出錯?
不過Step3是能參考,它會把目前的outlook裡的"Sample"資料夾內容表列出來,
我這邊沒有安裝outlook所以只能給您一些建議的測試方向,例如:
1.在桌面新增一個文字文件並命名為"read_mail.hta"
2.以記事本開啟read_mail.hta並貼入下列源碼:
<HTA:Application ID="read_mail" Applicationname="read_mail" scroll="yes" icon="" singleinstance="yes">
<html><head><meta charset="utf-8">
<script>
function PopulateTable(){
var objOutlook = new ActiveXObject("Outlook.Application");
var session = objOutlook.Session;
for(var folderCount = 1;folderCount <= session.Folders.Count; folderCount++){
var folder = session.Folders.Item(folderCount);
if(folder.Name.indexOf("Mailbox - ")>=0){
for(var subFolCount = 1; subFolCount <= folder.Folders.Count; subFolCount++)
{
var sampleFolder = folder.Folders.Item(subFolCount);
if(sampleFolder.Name.indexOf("Sample")>=0){
for(var itmCount = 1; itmCount <= sampleFolder.Items.Count; itmCount++){
var itm = sampleFolder.Items.Item(itmCount);
if(!itm.UnRead)
continue;
var sentBy = itm.SenderName;
var sentDate = itm.SentOn;
var receivedBy = itm.ReceivedByName;
var receivedDate = itm.ReceivedTime;
var subject = itm.ConversationTopic;
var contents = itm.Body;
var tbl = document.getElementById('tblContents');
if(tbl){
var tr = tbl.insertRow(tbl.rows.length);
if(tbl.rows.length%2 != 0)
tr.className = "alt";
var tdsentBy = tr.insertCell(0);
var tdsentDate = tr.insertCell(1);
var tdreceivedBy = tr.insertCell(2);
var tdreceivedDate = tr.insertCell(3);
var tdsubject = tr.insertCell(4);
var tdcontents = tr.insertCell(5);
tdsentBy.innerHTML = sentBy;
tdsentDate.innerHTML = sentDate;
tdreceivedBy.innerHTML = receivedBy;
tdreceivedDate.innerHTML =receivedDate;
tdsubject.innerHTML = subject;
tdcontents.innerHTML = contents;
}
itm.UnRead = false;
}
break;
}
}
break;
}
}
return;
}
</script></head>
<body>
<div id="divResult">
<input type="button" value="Read" onclick="PopulateTable();" /><br />
<table cellpadding="3" cellspacing="3" border="1" id="tblContents" >
<tr>
<th style="width:100px;">Sent By</th>
<th style="width:80px;">Sent on</th>
<th style="width:80px;">Recived By</th>
<th style="width:75px;">Recived on</th>
<th style="width:75px;">Subject</th>
<th style="width:200px;">Content</th>
</tr>
</table>
</div>
</body></html>
並存檔。
3.左鍵點擊兩下read_mail.htm 試試。(結果如附圖所示)
ps."Mailbox - "及"Sample"字串請依實際情況修改,我這邊沒法測試行不行,祝您好運~
還有這樣的喔,
有空研究看看..
我原本也以為至少要用nodejs之類的後端來弄
後來看到有獨立的js分類才發現純js或許也能達到目的
...before you begin you'll need to have Node.js installed.
這個教學只能開網路郵件,如果你已是桌面版的鐵定不行
建議看這邊的範例,我沒TRY過,還有如果PST有加密,那 .... 應該是不行的
https://www.codeproject.com/Tips/863192/Reading-Outlook-Emails-Contents-using-JavaScript
用python call outlook.api就能解決問題 ; 用node.js或任何server就變成二個問題了,這個是我想說的重點:D
問題是他問的是用JS啊。回答node.js的方案比較正常吧。XD
窮嘶發發發
這個我有試過,但不知道為何照他的方法去做之後,我還是沒辦法顯示出內容
想要問一下,我要改動的部分是不是這些:
1.
if(sampleFolder.Name.indexOf("Sample")>=0)
Sample是不是要改成要讀取的信件的資料夾?
2.
strURL = "http://server/page/sample.aspx"
這個是要改成我的網路路徑嗎?
3.
Set oApp = CreateObject("InternetExplorer.Application")
這個需要改嗎?
再麻煩各位大神為我解惑了
1.先把"sampleFolder.Name" console.log出來看是什麼東西, 搞不好前置步驟就沒弄好
2.3對VB不熟 留給別人回答
javascript是前端語言,
python等是後端語言.
前端語言應該不能讀電腦檔案,
除非你是用上傳的方式,
(不過就算用上傳的方式要解析應該也不好處理)