Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta mail Can';t使用SearchTerm=newmessageidterm(ID)按邮件ID搜索邮件_Jakarta Mail - Fatal编程技术网

Jakarta mail Can';t使用SearchTerm=newmessageidterm(ID)按邮件ID搜索邮件

Jakarta mail Can';t使用SearchTerm=newmessageidterm(ID)按邮件ID搜索邮件,jakarta-mail,Jakarta Mail,我正在Android上开发一个电子邮件应用程序,我被困在这里了。如果我使用Gmail服务器,我可以通过ID搜索电子邮件 SearchTerm term = new MessageIDTerm(ID); message_s = folder.search(term); 但有了这段代码,我就不能用雅虎、hotmail等其他服务器搜索电子邮件了。我试图通过重写这个代码来解决这个错误 SearchTerm messageIDTerm= new SearchTerm() { @Override

我正在Android上开发一个电子邮件应用程序,我被困在这里了。如果我使用Gmail服务器,我可以通过ID搜索电子邮件

  SearchTerm term = new MessageIDTerm(ID);
  message_s = folder.search(term);
但有了这段代码,我就不能用雅虎、hotmail等其他服务器搜索电子邮件了。我试图通过重写这个代码来解决这个错误

SearchTerm messageIDTerm= new SearchTerm() {
@Override
 public boolean match(Message message) {
 try {
    String   messageID="";
Enumeration headers = message.getAllHeaders();

   while (headers.hasMoreElements()) {
    eader h = (Header) headers.nextElement();               
    String mID = h.getName();                
    if(mID.contains("Message-ID") || mID.contains("Message-Id")){
    messageID= h.getValue();
    }
    }
    if (messageID.contains(ID)) {
     return true;
    }
    } catch (MessagingException ex) {
    ex.printStackTrace();
    }
    return false;
    }
    };
   message_s = folder.search(messageIDTerm);
搜索邮件是成功的。但问题是,这段代码通过客户端搜索(下载Message ID并进行比较)检查每个消息ID,找到结果要花很多时间

第一种方式,服务器搜索我的请求,速度非常快


那么,如果我使用第二种方法,如何使搜索速度与第一种方法一样快呢?

有些服务器坏了。你无法修复它们


如果必须在客户端中执行搜索,最好使用Folder.fetch方法预取执行搜索所需的标题。然后,在迭代所有需要检查的消息时,将标准MessageIDTerm与Message.match方法一起使用。

我尝试使用fetch,但查找消息仍然需要很长时间。我建议向损坏邮件服务器的所有者投诉。我认为没有办法让服务器代替客户端进行搜索。因此,我必须找到另一种解决方案来获取带有某些标题的正文邮件。谢谢你的帮助。