使用Zend Mail作为模块

时间:2012-03-02 07:54:38

标签: php zend-framework

Fatal error: Uncaught exception 'Zend_Exception' with message 'File "Mail.php" does not exist or class "Mail" was not found in the file' in     C:\xampp\htdocs\fyp\plugin\Zend\Loader.php:99 

Stack trace: #0 C:\xampp\htdocs\fyp\report\bounce.php(9): Zend_Loader::loadClass('Mail') #1 {main} thrown in C:\xampp\htdocs\fyp\plugin\Zend\Loader.php on line 99

我的文件夹的结构是:

根/报告/ call.php 根/ pluign / Zend的/装载机/ Autoloader.php

Zend框架在查找文件时似乎存在一些问题。如何解决?谢谢

call.php:

<?
set_include_path($_SERVER['DOCUMENT_ROOT'].'/fyp/plugin');
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

//Zend_Loader_Autoloader::getInstance();

//set_include_path('../plugin/ZendFramework-1.11.11-minimal/library/Zend');
Zend_Loader::loadClass('Mail');




$mail = new Zend_Mail_Storage_IMAP(array('host'     => 'imap.gmail.com',
                                         'user'     => 'admin@gmail.com',
                                         'password' => 'pwd',
                                         'ssl'      => 'SSL',
                                         'port'     => 993
                                         ));




echo $mail->countMessages() . " messages found\n";

foreach ($mail as $message) {
    echo "Mail from '{$message->from}': {$message->subject}\n";
}

include("../connection/conn.php");
session_start();

?>

1 个答案:

答案 0 :(得分:1)

将Zend Framework放在php.ini include_path中。这是include_path='.;C:\xampp\php\PEAR'指向的内容 在你的php.ini中,让你的包含路径看起来像include_path='.;C:\xampp\php\PEAR;C:\path\to\ZendFramework-1.11.11-minimal/library',然后你的自动加载器应该可以工作。

解决您的编辑问题:
班级名称不是“邮件”。 Zend_Loader::loadClass('Zend_Mail');

使用ZF 1.x,类名模仿文件的路径。这是在PHP具有命名空间之前完成的特殊命名空间。

所以例如Zend_Mail_Storage_IMAP会住在/Zend/Mail/Storage/IMAP

希望这有帮助