通过命令行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)
哪位大神能帮忙解答一下。