使用电子邮件模板布局的注册函数存在问题-cakephp
老实说,这是个奇怪的人。我已经在我的本地机器上完全正常工作了,但是在生产服务器(CENTOS)上,注册后的重定向正在命中电子邮件模板 这里有我遗漏的东西吗使用电子邮件模板布局的注册函数存在问题-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
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 很好。