2011-04-27 46 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