我在我的项目中使用此代码连接到Gmail的收件箱以及我的uni邮件。它在我的系统上工作正常,我可以连接到两者的IMAP。但只要在其他系统上尝试使用相同的代码,Gmail就会暂停连接。它无法连接。我搜索了一下,发现我的系统正在侦听端口443,而在我测试的另一个系统上,它没有侦听端口443.我试图在另一个系统中给出一些入站规则来打开443端口但是一旦我运行我的编程它就会被阻止。
这个问题是由端口引起的吗?或者我在这里错过了什么?
public class MailConnection {
Folder inbox;
public MailConnection() throws MessagingException{
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imap");
try{
Session session = Session.getInstance(props, null);
Store store = session.getStore("imap");
store.connect("mailbox.xyz.com", "emailId@xyz.com", "password");
System.out.println(store);
inbox = store.getFolder("Inbox");
System.out.println("No of Unread Messages : " + inbox.getUnreadMessageCount());
}
catch (NoSuchProviderException e){
e.printStackTrace();
System.exit(1);
}
}
答案 0 :(得分:0)
您正在连接到非SSL IMAP端口 - 143.我不知道“443”来自何处。
Gmail需要SSL IMAP端口。有关示例,请参阅this JavaMail FAQ entry。
如果不起作用,请参阅these debugging tips。