Search 在JavaMail中搜索-如何在服务器端实现?
我想我遗漏了一些关于如何在JavaMail中搜索的内容Search 在JavaMail中搜索-如何在服务器端实现?,search,gmail,jakarta-mail,Search,Gmail,Jakarta Mail,我想我遗漏了一些关于如何在JavaMail中搜索的内容 从文件夹下载空邮件 创建与结果匹配的新SearchTerm 使用搜索词筛选(yourFolder.search)结果 这很有效。但是——为什么要这样做?如果我使用javamail连接到gmail之类的东西,搜索不会在服务器端执行,而且使用整个javax.mail.search.SearchTerm结构在效率或减少需要通过网络发送的数据量方面似乎没有任何优势 我没有看到在服务器端执行搜索并返回匹配列表的任何方法。有什么想法吗 编辑:包括我现在
Properties-props=System.getProperties();
props.setProperty(“mail.store.protocol”、“gimaps”);
最终会话=Session.getDefaultInstance(props,null);
最终GmailSSLStore存储=(GmailSSLStore)session.getStore(“gimaps”);
store.connect(地址、密码);
最终的Gmail文件夹allMailFolder=(Gmail文件夹)store.getFolder(“[Gmail]/All Mail”);
allMailFolder.open(文件夹只读);
最终消息[]allMessages=allMailFolder.getMessages();
System.out.println(“Messages:+allMessages.length”);
FetchProfile fp=新的FetchProfile();
fp.add(FetchProfile.Item.信封);
获取(所有消息,fp);
用于(最终消息:allMessages){
最终地址[]addrs=message.getFrom();
如果(地址!=null){
收件人(最终地址地址:地址){
if(addr.toString().toLowerCase()包含(“george”)){
System.out.println(addr.toString());
}
}
}
}
您做错了什么,但您没有提供足够的详细信息让我们知道您做错了什么
你在用IMAP吗
向我们显示一些代码和调试输出。如果您使用预定义的
SearchTerm
实现在IMAP文件夹中搜索,它将尝试在服务器上执行搜索。查看SearchSequence.generateSequence
的实现。在您的示例中,您可能希望使用FromStringTerm
如果您使用的是gimap提供商,您还可以使用谷歌的IMAP扩展,其中包括X-GM-RAW
search属性,允许您像在Gmail web界面中一样进行搜索。java实现在gmailrawsearchtm
中,并且仅在服务器端工作