在服务器上实现imap搜索

时间:2013-05-03 03:44:13

标签: search imap

我目前正致力于在我们的邮件服务器上实施IMAP协议。这是我第一次实现这样一个大项目,到目前为止我已经在RFC中编写了大部分IMAP命令,但搜索命令除外。 我一直在互联网上搜索并研究了postfix算法几周,看看如何正确编写搜索命令。 似乎Postfix会工作,直到遇到类似OR OR A B C D ==>的东西。 (或(或A B)C)D 当有多个OR时,有人能指出如何实现搜索命令的方向吗?

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

这不是你想要的答案,但无论如何我会推荐这个 - 不要这样做。 IMAP是一个极其复杂的协议,有大量非明显的极端情况。基线版本(RFC3501)也会遗漏许多高级功能;为了获得合理的性能,特别是对于移动客户端,您需要实现相当多的扩展。

如果我是你,我建议与现有的开源IMAP服务器实现集成。如果你有一个花哨的存储后端,也许你可以为Dovecot或Cyrus写一个插件。

如果您决定自己重新实现这个并且这是您的第一个复杂项目,那么您很可能最终得到的产品在很多方面都会被巧妙地打破。如果您的目标是能够在销售手册中添加“说IMAP”这一短语,那么它将起作用,但在实践中,您将至少在未来五年内解决互操作性问题。