gpt4 book ai didi

JavaMail - 多个搜索词的问题

转载 作者:行者123 更新时间:2023-12-02 13:34:06 41 4
gpt4 key购买 nike

我想从我的 Gmail 帐户的特定文件夹中获取最近未读的具有特定主题的电子邮件。我正在使用 JavaMail API,如下所示,但它返回 0 个结果。但是,如果我只单独使用 subjectTerm,我就会看到结果。请让我知道我哪里出错了。谢谢。

请注意,为了代码简单性,我在下面使用了 messages[0],而不是循环遍历 messages 数组,以便将其粘贴到此处。

     public void openMailBox(String hostname, String username, String password, String folderName, String subject) throws MessagingException, GeneralSecurityException, IOException{
props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.host", "imap.gmail.com");
props.setProperty("mail.imaps.port", "993");
props.setProperty("mail.imaps.ssl.enable", "true");
props.put("mail.imaps.ssl.socketFactory", new MailSSLSocketFactory());
session = Session.getInstance(props);
store = session.getStore();
store.connect(username, password);
folder = store.getFolder(folderName);
folder.open(Folder.READ_ONLY);
messages = folder.search(getSearchTerm(subject));
if (messages[0].isMimeType("multipart/*")){
Multipart multipart = (Multipart) messages[0].getContent();
for(int i=0;i<multipart.getCount();i++) {
BodyPart bodyPart = multipart.getBodyPart(0);
if (bodyPart.isMimeType("text/*")) {
msg = msg+bodyPart.getContent().toString();
}
}
}else{
msg = messages[0].getContent().toString();
}
System.out.println(msg);
folder.close(true);
store.close();
}

public SearchTerm getSearchTerm(String subject){
subjectTerm = new SubjectTerm(subject);
unseenFlagTerm = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
recentFlagTerm; = new FlagTerm(new Flags(Flags.Flag.RECENT), true);
return new AndTerm(subjectTerm, new AndTerm(unseenFlagTerm, recentFlagTerm));
}
}

最佳答案

您使用什么邮件服务器?

某些邮件服务器不以任何有用的方式实现“最近”标志,因此邮件可能不会被标记为“最近”。尝试忽略最近的术语,看看是否会得到更多结果。

如果这没有帮助,请添加代码以转储所有消息的标志,然后发布 JavaMail debug output显示所有消息的标志以及搜索请求和响应。

另请注意,某些 IMAP 服务器未完全或正确实现 SEARCH 命令,因此无法处理您正在执行的搜索类型。

最后,请注意,您不需要设置 socketFactory 属性,除非您以比上面示例代码中显示的更有趣的方式使用 MailSSLSocketFactory。

关于JavaMail - 多个搜索词的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103090/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com