2011-04-27 45 views
1

我可以發送電子郵件,但我無法閱讀電子郵件。如何使用java讀取電子郵件?

這裏是我的代碼連接到郵件服務器:

String host = "na-*****.*****.****.ea.com"; 
    String username = "*****@*******.ea.com"; 
    String password = "********"; 

    Properties properties = System.getProperties(); 
    Session session = Session.getDefaultInstance(properties); 
    session.setDebug(true); 
    Store store = session.getStore("pop3"); 
    store.connect(host, username, password); 

每當我嘗試使用代碼來讀取郵件,它會引發以下錯誤:

javax.mail.MessagingException: Connect failed; 
nested exception is: 
java.net.SocketException: Connection reset 
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:210) 
at javax.mail.Service.connect(Service.java:295) 
at javax.mail.Service.connect(Service.java:176) 
at DisplayMail.main(DisplayMail.java:18) 
Caused by: java.net.SocketException: Connection reset 
at java.net.SocketInputStream.read(Unknown Source) 
at java.io.BufferedInputStream.fill(Unknown Source) 
at java.io.BufferedInputStream.read(Unknown Source) 
at java.io.DataInputStream.readLine(Unknown Source) 
at com.sun.mail.pop3.Protocol.readResponse(Protocol.java:683) 
at com.sun.mail.pop3.Protocol.simpleCommand(Protocol.java:656) 
at com.sun.mail.pop3.Protocol.<init>(Protocol.java:109) 
at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:261) 
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:206) 
... 3 more 

有人能告訴我是什麼我做錯了,或者如果需要更多信息?

+1

請仔細閱讀本:http://tinyurl.com/so-hints – Oded 2011-04-27 13:13:17

+1

在未來,要修改您原來的問題,並將它標誌了管理員注意要重新打開。我將你剛剛發佈的問題的編輯複製到這個問題中,刪除了重複並重新打開了這個問題。 – 2011-04-27 22:38:27

回答

2

有多種電子郵件協議(pop3,imap,exchange等),根據你想要的協議,你將需要找到一個庫(或自己動手)說出選擇的協議來訪問和下載電子郵件一臺服務器。

我建議看JavaMail API

+0

有什麼方法可以知道哪個協議郵件服務器正在使用? – 2011-04-27 13:18:26

+0

我用來連接的代碼是---- – 2011-04-27 13:22:27

+1

@Iranranil:不要將代碼粘貼到註釋中;編輯你的問題,所以它是可讀的。 – geoffspear 2011-04-27 13:23:39