使用CakeEmail和ajax方法

时间:2013-05-12 19:12:30

标签: php cakephp cakephp-2.0

我正在尝试使用CakeEmail在ajax方法上发送一封简单的电子邮件。我假设ajax调用是问题,如果我在其中有电子邮件功能,则返回400错误请求。否则它工作正常。在ajax控制器方法中使用CakeEmail是否需要进行一些特殊配置?或者这是不可能的?

只是尝试运行标准的CakeEmail,没有任何异常:

$email = new CakeEmail();
        $email->config = $this->ses;
        $email->from('contact@mydomain.com',Configure::read('Site.title'))
            ->to($user['User']['email'])
            ->subject(__d('croogo', '[%s] Discount Approved', Configure::read('Site.title')))
            ->template('Users.apply_approve')
            ->theme($this->theme)
            ->viewVars(array('user' => $user))
            ->send();

ses是AppController中的配置:

    public $ses = array(
    'host' => 'ssl://email-smtp.us-east-1.amazonaws.com',
    'port' => 25,
    'username' => '****',
    'password' => '****',
    'transport' => 'Smtp',
    'tls' => true
);

我在常规表单帖子中的其他区域(在ajax请求之外)使用它,它工作正常。

更新 检查了Apache日志(感谢Borislav),它说:

PHP Fatal error:  Call to a member function viewVars() on a non-object in...

似乎对于Ajax请求,没有CakeEmail正在使用的viewVars:

->viewVars(array('user' => $user))

1 个答案:

答案 0 :(得分:0)

删除

->theme($this->theme) 

修好了。主题变量在ajax布局中不可用。