CakePHP 2.0 - 如何从AppController发送电子邮件?

时间:2012-05-17 16:22:50

标签: cakephp-2.0

我正在尝试从我的CakePHP 2.0应用程序中发送来自AppController的电子邮件。如果我从PagesController发送它,它工作正常,但我也需要能够从AppController发送。

我有:

function sendSystemEmail($to = EMAIL_CONTACT, $from = EMAIL_FROM, $subject = null, $body = null, $view = null, $vars = null) {
    App::uses('CakeEmail', 'Network/Email');
    $email = new CakeEmail();
    $email->viewVars(array(
            'body' => $body,
            'vars' => $vars
    ));
    $email->template($view)
            ->emailFormat('html')
            ->from($from)
            ->to($to)
            ->subject($subject)
            ->send();
    return;
}

当我使用它时,我没有收到任何错误,但电子邮件没有到达。我看不出这与我在PagesController中的代码有什么不同,所以我假设有一些AppController可能无法访问的东西?我无法弄清楚是什么!

有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

Sharon,你没有放配置方法..这个参数也可以放在classEmail的构造函数中,这样..

$email = new CakeEmail('pop3'); //can be smtp or the protocole you are using..

$email->config('pop3')

你需要在这里定义连接.. 的 ./应用程序/配置/ email.php

class EmailConfig {

    public $pop3 = array(
        'transport' => 'Mail',
        'from' => 'you@localhost',
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    );