CakePHP电子邮件 - 在非对象上调用成员函数subject()

时间:2014-01-28 09:40:25

标签: cakephp cakephp-2.3

我的应用程序在本地(使用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();
}

非常感谢任何输入。

1 个答案:

答案 0 :(得分:7)

您在Chain中的一个调用将返回一个字符串而不是CakeEmail对象。

如果由于各种原因,呼叫参数变为null,则会发生这种情况。然后你的链断了,你最终会在非对象上调用成员函数;

如果查看这些函数的返回值,您将看到它们返回CakeEmail对象,字符串或数组。由于你没有得到一个对象,你必须得到字符串或数组,因此你的问题。

因此,请确保远程服务器上的'to','from'不为空。