javamail异常:javax.mail.MessagingException:文件夹未使用SocketChannels

时间:2017-11-17 09:11:23

标签: exception javamail

当我使用空闲管理器时,我得到了这个例外。 因为我已经看过这个答案[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");    

我的财产有问题吗?

1 个答案:

答案 0 :(得分:1)

这似乎与Issue 403- Android SocketChannel workaround not working around有关。

默认情况下,安全套接字的Android实现不会返回套接字通道。 JavaMail的早期版本使用反射来访问套接字并创建通道。后来,Android更新为使用Conscrypt提供SSL套接字。它也不会返回套接字通道,但是,现有的JavaMail解决方法不起作用,因为包装的套接字位于JavaMail所不希望的更深的子类中。

应用于JakartaMail 2.0.0 / Jakarta EE 9的修复程序应更正您遇到的问题。