“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”)