你的第一個選擇直接連接到郵件服務器實際上是非常簡單的。
我們通過使用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系統的所有內容。
太好了,讓我試試這個並回到這個線程。 – adhg
抱歉,延遲(其他功能堆積)謝謝! – adhg