2012-06-04 85 views
0

我們正在處理來自我們客戶的許多電子郵件。每個包含案例編號主題行的電子郵件都會上傳到我們的CRM。目前,我們的分析師正在執行此過程,即他獲取或發送的每封電子郵件都會將電子郵件複製到桌面,然後將該文件上傳到相關案例。將Outlook電子郵件複製到一個文件夾或通過javamail讀取電子郵件?

這是非常乏味和耗時的。我的設計問題是這樣的:

選項1:通過java郵件閱讀電子郵件,如果主題行有個案號 - 只需獲取內容和附件並將電子郵件上傳到crm即可。

或者

選項2:Outlook電子郵件複製到桌面,然後上傳電子郵件作爲文件到CRM。

我不確定,但看起來選項2更好,因爲電子郵件中的所有內容(附件,文檔,圖表,照片)都會上傳,而分析將參考caseid時,他將能夠看到按原樣發送電子郵件(就好像它是從Outlook中發出的一樣)。

首先選擇保存我的Hessle的與Outlook的工作,但我怕電子郵件將純文本(不知道是否有上傳整個電子郵件,彷彿這是一個Outlook文件的方式)

感謝任何指針

回答

1

你的第一個選擇直接連接到郵件服務器實際上是非常簡單的。

我們通過使用JavaMail登錄到Exchange服務器來做類似的事情:Java應用程序定期連接到Exchange並處理它找到的所有郵件。一旦它處理了一封電子郵件,它就會將它移動到另一個文件夾,因此它不會再被處理。

我不太明白你的第二個選擇是如何工作的,但將Java代碼連接到Outlook聽起來更難。

下面概述瞭如何使用JavaMail處理Exchange服務器上的電子郵件。應該爲支持IMAP任何郵件服務器的工作:

public void processMailExample() { 
    Store store = session.getStore(new javax.mail.URLName("imap://user:[email protected]")); 
    store.connect(); 
    Folder inputFolder = store.getFolder("INBOX"); 
    Folder outputFolder = store.getFolder("INBOX/Processed"); 

    inputFolder.open(Folder.READ_WRITE); 

    Message[] messages = inputFolder.getMessages(); 
    for (Message message : messages) { 

     // Process message here 

     moveMessage(message, outputFolder); 
    } 
} 

public void moveMessage(Message m, Folder to) throws MessagingException 
{ 
    m.getFolder().copyMessages(new Message[] {m}, to); 
    m.setFlag(Flag.DELETED, true); 
    m.getFolder().expunge(); 
} 

如果一個特定的電子郵件有附件那麼這將是javax.mail.internet.MimeMessage而不僅僅是Message一個實例。 MimeMessage類可讓您完全訪問所有附件,HTML等,因此您應該可以訪問需要上傳到CRM系統的所有內容。

+0

太好了,讓我試試這個並回到這個線程。 – adhg

+1

抱歉,延遲(其他功能堆積)謝謝! – adhg

相關問題