“java邮件存储类型”;imap“;vs";imaps“;
我使用以下代码以编程方式验证电子邮件“java邮件存储类型”;imap“;vs";imaps“;,java,jakarta-mail,Java,Jakarta Mail,我使用以下代码以编程方式验证电子邮件 Properties properties = new Properties(); Session emailSession = Session.getDefaultInstance(properties); Store store = emailSession.getStore("imap"); store.connect(host, user, password); if(store.isConnected()){ System.out.p
Properties properties = new Properties();
Session emailSession = Session.getDefaultInstance(properties);
Store store = emailSession.getStore("imap");
store.connect(host, user, password);
if(store.isConnected()){
System.out.println("true");
}
目前它抛出一个异常
javax.mail.MessagingException: Connection dropped by server?;
nested exception is:
java.io.IOException: Connection dropped by server?
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at com.**.channel.type.IMAPValidator.fetch(IMAPValidator.java:23)
at com.**.channel.type.IMAPValidator.main(IMAPValidator.java:47)
但是如果我使用
emailSession.getStore("imaps");
然后成功连接到雅虎的imap服务器
我所知道的“imaps”代表“安全”
我不知道为什么我不能简单地使用“imap”?谷歌确实需要一个安全的连接
也许雅虎禁止不安全的连接。请阅读本文的最后一个答案。请阅读文章。但它没有回答我的问题。我在雅虎和gmail服务器上都试过这个“imap”。如果两者都禁止非安全连接,那么应该有一些文档或博客。如果你去雅虎或Gmail的网页,告诉你如何设置电子邮件客户端,他们会告诉你使用哪种配置(端口、SSL等)。他们不会告诉您哪些配置不能使用,但暗示他们只支持他们告诉您的配置。是的,imaps用于安全连接。这相当尴尬。我不会更改类的整个名称来描述该类的一个属性。这些道具也都是重复的,比如prop.put(“mail.imaps.timeout”)和prop.put(“mail.imap.timeout”)