cakephp2 CakeMail - 语法错误,意外';',期待')'
问题描述:
我知道这种问题是典型的新手错误,我是一个新手。 我很困惑。一切似乎都对。任何人都可以请帮我指出我的语法错误在哪里?cakephp2 CakeMail - 语法错误,意外';',期待')'
这里是堆栈跟踪说
CORE\Cake\Network\Email\CakeEmail.php line 362 → CakeEmail->config(string)
}
if ($config) {
$this->config($config);
} elseif (config('email') && class_exists($this->_configClass)) {
APP\Controller\ContactsController.php line 141 → CakeEmail->__construct(string)
}
}
$Email = new CakeEmail('smtp');
$Email->template('MassMail');
'smtp'
这里是我这个页面控制器看起来像
public function mail() {
$allCity = $this->City->find('all');
$this->set('city', $this->City->find('list'));
$this->set('cityall', $allCity);
if ($this->request->is('post')) {
$to = [];
$subject = $this->request->data['Emails']['judul'];
$content = $this->request->data['Emails']['content'];
$toList = $this->request->data["Emails"]["to"];
foreach ($toList as $kota) {
foreach ($allCity as $cityObj) {
if ($kota == $cityObj['City']['kota']) {
foreach ($cityObj['Contact']as $kontak) {
if ($kontak['email'] != "") {
array_push($to, $kontak['email']);
}
}
}
}
}
$Email = new CakeEmail('smtp'); //--> Line 141
$Email->template('MassMail');
$Email->emailFormat('html');
$Email->viewVars(['content' => $content]);
$Email->from(['[email protected]' => 'Forkom Jerman']);
$Email->to($to);
$Email->subject($subject);
$Email->replyTo('[email protected]');
$Email->transport('smtp');
if ($Email->send()) {
$this->Flash->set('Email Telah terkirim');
} else {
$this->Flash->set('Email tidak bisa terkirim');
};
}
}
,这里是我的电子邮件配置
public $smtp = array(
'log' => true;
'transport' => 'smpt',
'from' => '[email protected]',
'host' => 'send.one.com',
'port' => 465,
'username' => 'forkom.****@gmail.com',
'password' => '*****!',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
我已尝试将smpt更改为默认,或者甚至保留空白,以便它自动使用默认值($ Email = new CakeEmail();) 我甚至试过把刚才复制从食谱粘贴代码段直接看起来像这样,只是为了看看应该如何
$Email = new CakeEmail();
$Email->from(array('[email protected]' => 'My Site'));
$Email->to('[email protected]');
$Email->subject('About');
$Email->send('My message');
但语法错误消息仍然指出来:$电子邮件=新CakeEmail();
我也试着清除缓存TMP>缓存> presistent> myapp_cake_core_file_map
但仍nothng变化,
任何建议将是非常有益的。 谢谢!
答
首先,你的堆栈跟踪的粘贴几乎是无用的,因为它并不真正包含整个信息并且格式可怕。通过查看代码,我看准了这一点,并承担它的原因:
public $smtp = array(
'log' => true; // <--- Wrong
'transport' => 'smpt',
这是一个数组声明中分号。修复它,看看会发生什么。如果问题仍然出现,请发帖整个跟踪和正确格式化。
另外,你有什么特别的原因为什么你开始学习CakePHP2?这些日子很不合时宜。去CakePHP3,即使它只是为了学习的目的。