2013-02-07 50 views
0

我在一家公司作爲實習生工作,公司中的每個人都使用Outlook的郵件。 我找不到從收件箱中讀取電子郵件的方法。使用Java閱讀收件箱

讓我來看看我的項目。我正在使用JavaMail API發送郵件。

我的第一個任務 - 使用主機,協議,用戶名和密碼,使用我已成功完成的Reminder系統發送來自java程序的郵件。沒有必要輸入密碼,因爲如果我嘗試輸入密碼,它停止工作。它的工作只有沒有密碼。

所以基本上,我可以使用公司的其他員工發送電子郵件使用那裏的電子郵件地址作爲「發件人」,因爲沒有密碼需要輸入,只能從java程序進入。

我的第二個任務 - 要閱讀郵件和發送者的詳細信息的主題,並做一些任務...

沒有密碼進入,但

Store store = session.getStore("smtp"); 
//I tried with imap, pop3, but everything gives error "No Such Provided" 


store.connect("[email protected]", "PASSWORD"); 

store.connect()不允許我使用沒有密碼的方法。

該軟件將使用一個新的電子郵件地址,它與用戶Outlook中的地址不同,但爲了測試,我首先使用我的電子郵件地址,因爲該軟件將由不同的用戶/計算機使用。

如果我嘗試這樣

session.getStore("imaps"); 
store.connect("host","username","password"); 


Error: 
DEBUG: getProvider() returning 
javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc] 

DEBUG: mail.imap.fetchsize: 16384 
DEBUG: mail.imap.statuscachetimeout: 1000 
DEBUG: mail.imap.appendbuffersize: -1 
DEBUG: mail.imap.minidletime: 10 

DEBUG: trying to connect to host "host", port 993, isSSL true 

javax.mail.MessagingException: Connection refused: connect; 
nested exception is: 


java.net.ConnectException: Connection refused: connect 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:618) 
at javax.mail.Service.connect(Service.java:291) 
at javax.mail.Service.connect(Service.java:172) 

at TestMail.InboxReader.main(InboxReader.java:52) 
    Caused by: java.net.ConnectException: Connection refused: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
at java.net.Socket.connect(Socket.java:529) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570) 
at 
    com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) 
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284) 
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227) 
at com.sun.mail.iap.Protocol.<init>(Protocol.java:109) 
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:104) 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:585) 
... 3 more 
    Java Result: 2 
+0

還有一兩件事,我使用NetBeans SE用JavaMail API,是事我必須使用NetBeans EE或一些阿帕奇服務器。因爲我對JavaMail沒有先進的知識。 – vijay

+0

貴公司的郵件服務器是什麼?它是MS Exchange Server嗎? –

+0

是的,它是MS Exchange服務器! – vijay

回答

0

需要更多的細節......

JavaMail FAQ和發佈debug output時失敗。此外,您使用的確切代碼可能會有所幫助。

您可以使用JavaMail附帶的代碼對其進行全部測試,以便您可以確定問題出在您的代碼還是其他內容中。請參閱JavaMail下載包中包含的msgshow.java演示程序。

+0

如果我使用本網站提供的代碼,通過提供主機,端口,用戶名 - 我的電子郵件地址,密碼 - 用於登錄系統http://www.javaplex.com/blog/using-javamail- api-read-emails-from-gmail /我會這個錯誤http://stackoverflow.com/questions/12366765/javamail-error-unrecognized-ssl-message-plaintext-connection – vijay

+0

@debug輸出 - 當我使用命令提示符和鍵入telnet主機端口,我收到消息說220禁止未經授權使用。這是否意味着我無法訪問? – vijay

+0

聽起來就像這樣。只要你連接,你輸入任何東西之前,你是否收到這條消息?你連接了什麼端口?也許你的服務器希望你在SSL端口上連接? –