cakephp2 CakeMail-语法错误,意外'';,应为';)';
我知道这类问题是一个典型的新手错误,我也是一个新手。 我很困惑。一切似乎都很好。有谁能帮我指出语法错误在哪里吗 下面是堆栈跟踪所说的cakephp2 CakeMail-语法错误,意外'';,应为';)';,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我知道这类问题是一个典型的新手错误,我也是一个新手。 我很困惑。一切似乎都很好。有谁能帮我指出语法错误在哪里吗 下面是堆栈跟踪所说的 CORE\Cake\Network\Email\CakeEmail.php line 362 → CakeEmail->config(string) } if ($config) { $this->config($config); } elseif (config('email'
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(['info@forkom-jerman.org' => 'Forkom Jerman']);
$Email->to($to);
$Email->subject($subject);
$Email->replyTo('forkom.jerman@gmail.com');
$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' => 'info@forkom-jerman.org',
'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('me@example.com' => 'My Site'));
$Email->to('you@example.com');
$Email->subject('About');
$Email->send('My message');
但是语法错误消息仍然指向:$Email=new CakeEmail()强>
我还尝试在tmp>cache>presistent>myapp\u cake\u core\u file\u map中清除缓存
但仍然没有改变
任何建议都会很有帮助。
谢谢 首先,堆栈跟踪的粘贴几乎毫无用处,因为它实际上并不包含全部信息,而且格式糟糕。通过查看代码,我发现了这一点,并假设这是原因:
public $smtp = array(
'log' => true; // <--- Wrong
'transport' => 'smpt',
public$smtp=array(
'log'=>true;//'smpt',
它是数组声明中的分号。修复它并查看发生了什么。如果问题仍然出现,请发布整个跟踪并正确格式化
还有,你开始学习CakePHP2有什么特别的原因吗?现在它已经过时了。去学CakePHP3吧,即使它“只是”为了学习