我试图用ajax方法用CakeEmail发送一封简单的电子邮件。我假设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请求之外)在常规形式的帖子中使用了这个方法,而且它运行得很好。
UPDATE检查了Apache日志(谢谢Borislav),它说:
PHP Fatal error: Call to a member function viewVars() on a non-object in...因此,在Ajax请求中,没有CakeEmail正在使用的CakeEmail:
->viewVars(array('user' => $user))发布于 2013-05-13 15:25:34
移除
->theme($this->theme) 修好了。主题变量在ajax布局中不可用。
https://stackoverflow.com/questions/16511076
复制相似问题