首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakephp2 CakeMail -语法错误,意外的';',期待')‘

cakephp2 CakeMail -语法错误,意外的';',期待')‘
EN

Stack Overflow用户
提问于 2017-09-26 23:40:23
回答 1查看 83关注 0票数 1

我知道这类问题是一个典型的新手错误,而我是一个新手。我很困惑。一切似乎都是正确的。有人能帮我指出语法错误在哪里吗?

这是Stack Trace说的

代码语言:javascript
复制
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'

下面是我的这个页面的控制器的样子:

代码语言:javascript
复制
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');
            };

        }
    }

这是我的电子邮件配置:

代码语言:javascript
复制
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 ();),我甚至尝试直接从类似于此的菜谱中复制粘贴代码片段,以查看它应该是怎样的。

代码语言:javascript
复制
$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 ();

我还试图清除tmp>cache>presistent>myapp_cake_core_file_map中的缓存

但还是没什么改变。

任何建议都会很有帮助。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-09-26 23:51:10

首先,堆栈跟踪的粘贴几乎毫无用处,因为它没有真正包含所有信息,而且格式化很糟糕。通过查看代码,我发现了这一点,并假定这是原因所在:

代码语言:javascript
复制
public $smtp = array(
    'log' => true; // <--- Wrong
    'transport' => 'smpt',

它是数组声明中的分号。把它修好看看会发生什么。如果问题仍然出现,请张贴整个跟踪并正确格式化。

另外,你开始学习CakePHP2有什么特别的原因吗?现在已经很过时了。选择CakePHP3,即使它“只是”为了学习的目的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46437336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档