我目前正在尝试搜索收件箱中的一些电子邮件,其中包含“不再工作”的字符串,但问题是imap会返回包含3个字的电子邮件列表,而不是字符串“不再工作”
知道如何解决这个问题吗?我没有包含此字符串的消息,但由于上述问题,IMAP返回了2个结果。
a1 SEARCH BODY "not working anymore"
* SEARCH 4090 7752
答案 0 :(得分:2)
在客户端代码中过滤/验证服务器的结果。
更长的答案是IMAP服务器过去常常做你想做的事情,但是随着用户想要更聪明更模糊的搜索,服务器开始实现它。例如,用户希望找到如下消息:
foo foo foo foo foo foo foo not working
anymore foo foo foo foo
空格与您的搜索字词不匹配。你认为服务器应该返回该消息吗?
IMAP规范在这个问题上是无声的。当我读到它时,如果一条消息包含确切的字符串,那么该规范说消息必须与搜索匹配,但如果消息没有,那么......那么,服务器和客户端应该采取行动以满足用户并带来世界和平。这意味着您从服务器获得的搜索结果包含您想要的所有邮件,因此过滤不会遗漏任何结果。