PHP Imap扩展vs. Horde框架Imap客户端(或其他替代方案)


PHP Imap extension vs. Horde Framework imap client (or other alternatives)

对于web应用程序,我需要使用php从imap服务器读取邮件。

到目前为止,我已经使用了一个非常简单的脚本和php imap扩展,但因为我需要一个强大的解决方案(我也尝试过梨imap包,但它不是很可靠的不同编码),支持更多的功能,如pgp加密电子邮件,我一直在考虑使用部落框架/imap客户端代替。

我不知道仅仅为了imap功能而安装和使用(相当复杂的)horde框架是否值得。有什么替代方案或建议吗?与PHP imap扩展相比,使用horde的优点/缺点是什么?

(应用程序不应该提供任何web接口,我只需要解析邮件和保存内容/附件到数据库)

更新我尝试了Horde Imap客户端,它很容易安装和使用,但与php Imap扩展(在php5.3+eAccelerator上)相比,性能似乎有点慢。在imap服务器上登录+获取头需要8秒(登录4.5s +获取头3.5s),而使用php imap扩展(登录3s +获取头0.5s)则不到4秒。我还在努力弄清楚是否我做错了什么,或者这只是一个正常的差异本地php库与php imap扩展。

您可以安装Horde IMAP库而无需设置整个框架:

$ pear channel-discover pear.horde.org
$ pear install horde/horde_imap_client

您可以使用Zend Framework中的Zend_Mail组件。我不知道它是否比Horde更复杂,但你可以抓住那个组件和它的依赖关系,你不需要所有的ZF。

使用Zend_Mail读取消息

当他们登录到邮件服务器时,部落库做一些基本的管理和查询,其中最大的一个是" inquire INBOX",对于一个大文件夹,这可能会花费大量的时间。

PHP自带的IMAP扩展不会这样做。你可以通过安装和使用Horde_Cache来加速这些查询。

PHP自带的IMAP扩展有很多陷阱,例如,它可能难以登录到交换服务器,gmail等。我从经验中发现,学习和使用部落库来解决这些问题是值得的,它应该花你几个小时来产生一些有效的东西。当涉及到诸如从电子邮件正文中提取mime附件之类的事情时,我个人发现这更容易。你的里程可能会有所不同。

希望这对你有帮助!