发送电子邮件时,发送功能在zend框架中不起作用

时间:2011-12-14 19:38:49

标签: php zend-framework zend-mail

当我在IndexController.php中使用以下代码时,我收到错误,如代码下方所示:

IndexController.php中的

代码

<?php

class IndexController extends Zend_Controller_Action

{

public function init()
{
    /* Initialize action controller here */
}

public function indexAction()
{

    $config = array
    (
        'auth' => 'login',
        'username' => 'mymail@gmail.com',
        'password' => 'mypass',
        'ssl' => 'ssl',
        'port' => 465,
    );


    $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);

    $mail = new Zend_Mail();
    $mail->addTo('othermail@gmail.com', 'me' )
         ->setFrom('mymail@gmail.com', 'me')
         ->setSubject('your trial at fitness first')
         ->setBodyText('email body in plain text')
         ->send($transport);
}

}

页面上显示错误:

An error occurred

Application error

我从来没有编辑任何其他文件只是安装了zend并创建了一个新项目并继续进行,因为教程说...

但是我遇到了@上面的错误

2 个答案:

答案 0 :(得分:1)

解释起来相当复杂,但我试试。

当ZF中发生错误时,通常会抛出异常。这会在你的ErrorController中启动。

在该ErrorController中,只有在指定

时才会获得堆栈跟踪和错误消息
phpSettings.display_errors = 1
对于您当前使用的application/configs/application.ini

,在APPLICATION_ENV

看看:http://framework.zend.com/manual/en/zend.application.quick-start.html,它描述了它是如何工作的。 设置APPLICATION_ENV的简便方法是将其放在.htaccess文件

SetEnv APPLICATION_ENV development

这一切都在链接中描述。 然后编辑您的application/configs/application.ini,如:

[development]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

答案 1 :(得分:0)

如果您使用的是Gmail,请尝试将配置更改为:

$config = array
    (
        'auth' => 'login',
        'username' => 'mymail@gmail.com',
        'password' => 'mypass',
        'ssl' => 'tls',
        'port' => 587,
    );

如果有效,你以前版本的问题应该是你的php.ini文件中没有启用openssl