我的应用程序在本地(使用amazon ses)发送电子邮件很好,但在远程(具有准系统LAMP的数字海洋服务器)上失败。
以下代码会在此问题的标题中生成消息。
public function test() {
$this->autoRender = false;
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('transport');
$email->template('welcome', 'default')
->emailFormat('both')
->to('recpt@domain.com')
->from('sender@domain.com')
->subject(__('A subject'))
->send();
}
非常感谢任何输入。
答案 0 :(得分:7)
您在Chain中的一个调用将返回一个字符串而不是CakeEmail对象。
如果由于各种原因,呼叫参数变为null
,则会发生这种情况。然后你的链断了,你最终会在非对象上调用成员函数;
如果查看这些函数的返回值,您将看到它们返回CakeEmail对象,字符串或数组。由于你没有得到一个对象,你必须得到字符串或数组,因此你的问题。
因此,请确保远程服务器上的'to','from'不为空。