1

我已经设置了梨,并且之前被困在:

require_once('Mail.php');

我设法通过修复 PHP.ini 中的路径来解决这个问题,但现在 YII 抱怨:

include(LOGIN.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such  file or directory

我不知道要安装哪个库来让 PEAR 获取 LOGIN.php,如果这是问题所在。也可能是 YII 不允许导入 LOGIN.PHP,因为它可能有自己的?不过,我正在抓住稻草。有任何想法吗?

4

2 回答 2

3

这是因为 Yii 的自动加载器,它被设置为查找 Yii 的类,这与 PEAR 的标准不同,你需要做什么,它注册 PEAR 的自动加载器

您可以在指南中阅读相关内容

您可以使用如下所示的自动加载器:

static function loadClass($className){
  include str_replace('_','/',$className).'.php';
  return class_exists($className, false) || interface_exists($className, false);
  return false;
 }

PEAR 扩展应该已经在 PHP 的包含路径中才能正常工作

请参阅Zend Autoloader 扩展,了解如何实现它

于 2012-12-03T14:55:42.403 回答
1

YiiMail是一个可用的扩展,用于发送带有或不带有 smtp 的邮件,这是一个电子邮件扩展,它包含SwiftMailer. 此扩展还允许您从查看文件创建电子邮件。从这里下载

在您的配置文件中,在组件部分中包含以下代码

'mail' => array(
                'class' => 'application.extensions.yii-mail.YiiMail',
                'transportType'=>'smtp',
                'transportOptions'=>array(
                    'host'=>'smtp.googlemail.com',
                    'username'=>'test@gmail.com',//
                    'password'=>'passwd',
                    'port'=>'465',
                    'encryption'=>'ssl',
                ),
                'viewPath' => 'application.views.mail',
                'logging' => true,
                'dryRun' => false
        ),

在控制器动作部分使用类似下面的东西

$message = new YiiMailMessage;
$message->view = 'registrationFollowup';

//userModel is passed to the view
$message->setBody(array('userModel'=>$userModel), 'text/html');


$message->addTo($userModel->email);
$message->addBcc('someone@gmail.com');
$message->from = Yii::app()->params['adminEmail'];
Yii::app()->mail->send($message);

视图registrationFollowup位于视图文件夹内的邮件文件夹中,视图路径从配置文件 ( 'viewPath' => 'application.views.mail')中理解

于 2012-12-04T05:23:52.010 回答