我在Windows 7上使用WAMP Server并尝试使用代码Igniter配置Tank Auth。
注册时,屏幕卡在浏览器上。我检查了用户成功插入的数据库。通过一些调试,我发现代码在Tank Auth的控制器上的_send_email
函数中发送邮件时卡住了。下面是带有调试语句的代码。
function _send_email($type, $email, &$data)
{
echo "In _send_email";
$this->load->library('email');
$this->email->from($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
$this->email->reply_to($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
$this->email->to($email);
$this->email->subject(sprintf($this->lang->line('auth_subject_'.$type), $this->config->item('website_name', 'tank_auth')));
$this->email->message($this->load->view('email/'.$type.'-html', $data, TRUE));
$this->email->set_alt_message($this->load->view('email/'.$type.'-txt', $data, TRUE));
echo "Before Sending";//exit;
$this->email->send();
echo "Mail Sent";
echo $this->email->print_debugger();exit;
}
当我在exit
之前放置$this->email->send();
时,代码工作正常,但一旦我删除该退出就会卡住。清楚地表明send()方法存在问题。
我写了另一个cotroller来测试电子邮件,如下所示
public function view($slug){
$this->load->library('email');
$this->email->from('Myemail1', 'Kapil Sharma');
$this->email->to('myemail2');
$this->email->set_newline("\r\n");
$this->email->subject('Email Test');
$this->email->message('Testing the email class.<br>New Line.<br><strong>Strong</strong>');
$this->email->send();
$data['title'] = $data['news']['title'];
$this->load->view('templates/header', $data);
$this->load->view('news/view.html', $data);
$this->load->view('templates/footer');
}
成功发送了邮件。这是我的email.php配置,如果需要的话
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'myemail@gmail.com', //This is correct
'smtp_pass' => 'mypassword', //This is correct
'mailtype' => 'html'
);
有人可以确定问题所在。为什么发送电子邮件不能在Tank Auth的控制器中工作,但在另一个测试控制器中正常工作。我交叉检查了坦克auth配置文件和lang下的英语。
更新
我更新了_send_email
中的主题行,如下所示
//$this->email->subject(sprintf($this->lang->line('auth_subject_'.$type),$this->config->item('website_name', 'tank_auth')));
$this->email->subject('Test sub');
并且代码现在正在运行。 lang似乎有些问题。检查我是否可以找出问题所在。有人可以快速建议$this->lang->line
方法中存在问题的原因。