CakePHP邮件功能发生内部错误

时间:2013-08-05 14:19:25

标签: cakephp-2.0

public $default = array(
        'transport' => 'Mail',
        'from' => 'krutarth@gmail.com',
        'charset' => 'utf-8'
        //'headerCharset' => 'utf-8',
    );

    public $smtp = array(
        'transport' => 'Smtp',
        'from' => array('admin@example.com' => 'Project Name'),
        'host' => 'smtp.gmail.com',
        'port' => 465,
        'timeout' => 30,
        'username' => 'krutarth@gmail.com',
        'password' => 'secret',
        'client' => null,
        'log' => false,
        'tls' => true
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    );

我在confing-> email.php中有此设置 在错误页面我得到了电子邮件的格式,因为我定义了控制器代码,但它说发生内部错误...

无法发送电子邮件。

错误:发生内部错误。 堆栈跟踪

CORE/Cake/Network/Email/MailTransport.php line 47 → MailTransport->_mail(string, string, string, string, null)
CORE/Cake/Network/Email/CakeEmail.php line 1066 → MailTransport->send(CakeEmail)
APP/Controller/HomeController.php line 225 → CakeEmail->send(string)
[internal function] → HomeController->forgot()
CORE/Cake/Controller/Controller.php line 486 → ReflectionMethod->invokeArgs(HomeController, array)
CORE/Cake/Routing/Dispatcher.php line 187 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 162 → Dispatcher->_invoke(HomeController, CakeRequest, CakeResponse)
APP/webroot/index.php line 93 → Dispatcher->dispatch(CakeRequest, CakeResponse)

CORE / Cake / Network / Email / MailTransport.php第47行的结果 - > MailTransport-> _mail(string,string,string,string,null)是

雅利安@ * ** .com”之间 '来自“App”的密码重置说明 “

请点击该链接激活您的帐户。

Click here to activate

或者,您也可以将以下链接粘贴到浏览器中:

http://application.com/user/activation/ * ** * * /

此电子邮件由“App”发送。

'来自:krutarth.patel7@gmail.com X-Mailer:CakePHP电子邮件 日期:星期一,2013年8月5日19:08:53 +0530 消息ID:< * @ app,cm> MIME版本:1.0 内容类型:text / html;字符集= UTF-8 内容传输编码:8位' 空

我需要一些帮助来解决这个问题...我在本网站上尝试了Book.cakephp.org和其他一些问题的答案,但没有效果

我正在使用Cakephp2.3.8

2 个答案:

答案 0 :(得分:2)

此错误是因为您未在控制器中指定发件人帐户(例如admin@admin.com)。

答案 1 :(得分:0)

我厌倦了玩游戏并简单编辑CakePHP代码以输出$ params数组来查看错误的原因。我这样做是通过编辑'cake / libs / error.php'文件并在“error500”函数的第176行附近添加以下内容作为前两行,如下所示:

print_r($params);
die();

这给了我一个简单的数组,清楚地通知我,我在数据库中丢失了一个被弃用的表。从那里我很快发现模型中的条目仍在尝试链接到已弃用的表。我清理了有问题的模型,现在再次与世界相处得很好。

Read More