cakephp - 调用未定义的方法EmailComponent :: send()

时间:2015-08-07 04:07:44

标签: php cakephp

我是cakephp的新手,我查看了其他答案,但无法找到解决方案。我想在注册后发送电子邮件。但它显示未定义的方法错误。以下是我的代码

JSONEncoding

AppController的

public $components = array(
        'Email',
        'Session',
        'Auth',
        'DebugKit.Toolbar',
        //'Security',
    );

1 个答案:

答案 0 :(得分:1)

{@ 3}}已被弃用,因此您应该使用Email component

确保您在控制器顶部或您将要使用它的位置加载课程: -

App::uses('CakeEmail', 'Network/Email');

然后,您需要创建一个新的电子邮件对象: -

$Email = new CakeEmail('smtp');
$Email->to($to);
$Email->subject($template['EmailTemplate']['subject']);
$Email->from($template['EmailTemplate']['from']);
$Email->template('email_template');
$Email->emailFormat('both');
$Email->viewVars(['data' => $template_info]);
$Email->send();

您可以在app/Config/email.php文件中定义类似于数据库的电子邮件连接: -

class EmailConfig {
    public $smtp = array(
        'host' => 'mail.mindstack.in',
        'port' => 25,
        'username' => 'my-email',
        'password' => 'my-password',
        'transport' => 'Smtp',
        'tls' => true
    );
}

CakeEmail()的第一个参数决定了要使用的电子邮件配置。从CakePHP 2.7开始使用$default配置,您只需创建一个电子邮件对象,如: -

$Email = new CakeEmail();