问题描述
- Java Mail接收邮件连接超时异常
-
通过命令行telnet可以成功实现邮件的接收,但JavaMaik总是报连接超时的异常,代码如下:@Controller public class ReceiveMailController { @RequestMapping(value ="/receiveMail", method = RequestMethod.GET) public void receiveMail(HttpServletRequest request) throws MessagingException, IOException { String host = "pop3.sina.com"; String port = "110"; String userName = "******@sina.com"; String password = "******"; Properties p = System.getProperties(); p.put("mail.store.protocol", "pop3"); p.put("mail.pop3.host", host); p.put("mail.pop3.port", port); p.put("mail.pop3.auth", "true");//需要邮件服务器认证 MailAuthenticator auth = new MailAuthenticator(userName, password); Session session = Session.getDefaultInstance(p, auth); try{ Store store = session.getStore("pop3"); store.connect(host, userName, password); Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); Message msg[] = folder.getMessages(); //Integer msgCount = msg.length; for(int i = 0, msgCount = msg.length; i < msgCount; i++){ System.out.println("第"+i+"封邮件主题:"+msg[i].getSubject()); } folder.close(true); store.close(); System.out.println("Email received successfully!"); }catch(MessagingException e){ e.printStackTrace(); } } }
异常:
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: pop3.sina.com, 110; timeout -1;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:211)
at javax.mail.Service.connect(Service.java:364)
at javax.mail.Service.connect(Service.java:245)哪位大神能帮忙解答一下。
解决方案
是不是服务器验证没有通过
解决方案二:
同求,楼主解决了吗?
解决方案三:
Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, pwd);
}
};
Session session = Session.getDefaultInstance(props, auth);