如何在Yii框架中使用Horde/Imap_客户端

如何在Yii框架中使用Horde/Imap_客户端,yii,imap,plesk,horde,Yii,Imap,Plesk,Horde,我正试图找出如何使用Horde Imap客户端库在我的Yii Framework应用程序中导入电子邮件,但我不知道如何安装和加载它。请按照以下步骤操作: 1) 确保您的计算机/服务器中安装了PEAR 2) 如文档所述,安装Horde Horde_imap_客户端 3) 安装Horde Autoloader,因为默认情况下未安装它 pear install horde/horde_autoloader 4) 在加载Yii之前需要自动加载器 require_once 'Horde/Autoload

我正试图找出如何使用Horde Imap客户端库在我的Yii Framework应用程序中导入电子邮件,但我不知道如何安装和加载它。

请按照以下步骤操作:

1) 确保您的计算机/服务器中安装了PEAR

2) 如文档所述,安装Horde Horde_imap_客户端

3) 安装Horde Autoloader,因为默认情况下未安装它

pear install horde/horde_autoloader
4) 在加载Yii之前需要自动加载器

require_once 'Horde/Autoloader/Default.php';
如果计划从Yii控制台命令使用库,可以在条目脚本index.php中执行此操作,也可以选择在yiic.php中执行此操作

5) 现在,您应该可以通过控制器或Yii命令执行此操作:

try {
    $imap = new Horde_Imap_Client_Socket(array(
        'username' => 'user@example.com',
        'password' => 'pwd',
        'hostspec' => 'mail.example.com',
        'port' => 993,
        'secure' => 'ssl',
    ));

    $query = new Horde_Imap_Client_Search_Query();
    $results = $imap->search('INBOX', $query);
    var_dump($results['match']);

} catch (Horde_Imap_Client_Exception $e) {
    // Any errors will cause an Exception.
    die($e->getMessage());
}
6) 最后一点:

如果您在服务器上使用Plesk panel,则由于OpenBaseDir限制,加载PEAR库时会遇到问题,因此必须将PEAR路径(/usr/share/PEAR)添加到OpenBaseDir设置中。根据Plesk的版本不同,对于旧版本,您必须使用vhost.conf文件执行此操作,如本文所述:对于较新的Plesk版本,您可以直接从Plesk面板执行此操作,转到域的PHP配置并查找open_basedir设置

try {
    $imap = new Horde_Imap_Client_Socket(array(
        'username' => 'user@example.com',
        'password' => 'pwd',
        'hostspec' => 'mail.example.com',
        'port' => 993,
        'secure' => 'ssl',
    ));

    $query = new Horde_Imap_Client_Search_Query();
    $results = $imap->search('INBOX', $query);
    var_dump($results['match']);

} catch (Horde_Imap_Client_Exception $e) {
    // Any errors will cause an Exception.
    die($e->getMessage());
}