当我使用空闲管理器时,出现此异常。因为我已经看过这个答案[Exception in thread "main" javax.mail.MessagingException: Folder is not using SocketChannels
我尝试过
properties.setProperty(“ mail.imap.usesocketchannels”,“ true”);
但是它不适用于我的代码,并且仍然出现此异常。
Properties properties = new Properties();
properties.put("mail.imap.host", mailReceiveServer);
properties.put("mail.imap.auth", validate ? "true" : "false");
properties.put("mail.imap.port", mailReceivePort);
properties.put("mail.imap.ssl.enable", "true");
properties.put("mail.imap.partialfetch", false);
properties.put("mail.event.scope", "session");
properties.put("mail.imap.ssl.checkserveridentity", "false");
properties.put("mail.imap.ssl.trust", "*");
properties.put("mail.store.protocol", "imap");
properties.put("mail.event.executor", es);
properties.setProperty("mail.imap.usesocketchannels", "true");
我的财产有问题吗?
这似乎与Issue 403- Android SocketChannel workaround not working around有关。
默认情况下,安全套接字的Android实现不会返回套接字通道。 JavaMail的早期版本使用反射来访问套接字并创建通道。后来,Android更新为使用Conscrypt提供SSL套接字。它也不会返回套接字通道,但是,现有的JavaMail解决方法不起作用,因为包装的套接字位于JavaMail所不希望的更深的子类中。
应用于JakartaMail 2.0.0 / Jakarta EE 9的修复程序应纠正您所遇到的问题。