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,即使它只是为了学习的目的。