我正在尝试在我的应用程序中使用插件MandrillTransport-CakePHP(https://github.com/khanlou/MandrillTransport-CakePHP/blob/master/MandrillTransport.php),但发送消息时收到错误。
我的发送代码:
$Email = new CakeEmail('mandrill');
$Email->viewVars(array(
'fname' => $this->User->field('fname'),
));
$Email->template('welcome')
->from(array('support@domain.com' => 'MySite'))
->sender(array('support@domain.com' => 'MySite'))
->to($this->User->field('email'))
->subject('Welcome to MySite, ' . $this->User->field('fname'))
->send());
发送消息时,我收到错误:
注意(8):未定义的属性:CakeEmail :: $ template [APP / Lib / Network / Email / MandrillTransport.php,第97行]
通知(8):未定义属性:CakeEmail :: $ viewVars [APP / Lib / Network / Email / MandrillTransport.php,第105行]
我尝试将这些行更改为$ this-> _cakeEmail-> _template,但后来我收到有关访问受保护变量的错误。
对于2.0和2.4之间的CakeEmail更改有更多经验的人可以协助吗?
由于
答案 0 :(得分:1)
您必须使用相应的方法,即template()
和viewVars()
。 viewVars()
只返回_viewVars
属性的值,而template()
返回一个数组,您必须使用template()['template']
来获取_template
属性的值。< / p>
答案 1 :(得分:0)
我知道这是一个老问题,但对于未来的搜索者(像我一样),你可能会考虑一个似乎更积极维护的替代插件:https://github.com/a2design-company/Mandrill-CakePHP-plugin
我还没有使用它们,但它们看起来基本上是一样的。