使用电子邮件模板布局的注册函数存在问题-cakephp

使用电子邮件模板布局的注册函数存在问题-cakephp,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,老实说,这是个奇怪的人。我已经在我的本地机器上完全正常工作了,但是在生产服务器(CENTOS)上,注册后的重定向正在命中电子邮件模板 这里有我遗漏的东西吗 function register() { $this->layout = 'login'; $this->set('title_for_layout', 'Register'); if(!empty($this->data)) { $t

老实说,这是个奇怪的人。我已经在我的本地机器上完全正常工作了,但是在生产服务器(CENTOS)上,注册后的重定向正在命中电子邮件模板

这里有我遗漏的东西吗

  function register() {
        $this->layout = 'login';
        $this->set('title_for_layout', 'Register');
        if(!empty($this->data)) {
                  $this->User->create();
                     if($this->User->save($this->data)) {
                        $this->data['User']['group_id'] = 4;
                        $this->_sendNewUserMail( $this->User->id );
                        $this->redirect(array('action' => 'approval'));
                    } else {
                $this->Session->setFlash(__('There were errors found in your registration.  Please check the highlighted fields', true));
                }
        }               
    }

    function _sendNewUserMail($id) {
        $this->Email->smtpOptions = array(
                            'port'=>'25', 
                            'timeout'=>'30',
                            'host' => 'localhost',
                            'username'=>'username',
                            'password'=>'password',
        );
        $this->Email->delivery = 'smtp';
        $User = $this->User->read(null,$id);
        $this->Email->to = array('someone@blah.com');
        $this->Email->subject = 'A new registration has been submitted';
        $this->Email->from = 'Me@blah.com';
        $this->Email->template = 'default';
        $this->Email->sendAs = 'html';
        $this->set('User', $User);
        $this->Email->send();
    }
我完全被这件事难住了


非常感谢您的帮助

我猜php_openssl没有启用。此外,您应该将smtpOptions和delivery设置移动到_sendNewUserMail

[注释]

生产服务器中似乎有错误(可能是由于SMTP服务器中的不同配置造成的)。我假设在生产服务器中,调试设置为0。因此不会显示错误,这就是为什么它不会重定向,而是呈现电子邮件模板

您需要在生产环境中调试smtp错误。为此,您可以添加:

Configure::write('debug', 1);
在发送电子邮件的操作/控制器中,这样您就可以看到错误。此外,您还可以在
$this->Email->smtpError
变量中检查smtp错误

这样你就可以知道出了什么问题。我不太了解smtp服务器的配置,所以这可能是另一个s.O.问题


希望这有助于

在生产中发送邮件?@PleasedOnTown不幸的是,它没有在生产服务器上发送任何邮件-似乎表明php配置中缺少某些内容我已删除gmail设置(仅用于在本地计算机上进行测试)现在在生产服务器上使用localhost进行smtp中继,注册仍然会被重定向到电子邮件模板,以获得批准。问题是,我的本地php.ini和ssl://smtp.gmail.com 很好。