我在 Windows 7 上使用 WAMP 服务器并尝试使用代码 Igniter 配置 Tank Auth。
注册时,屏幕卡在浏览器上。我检查了用户已成功插入的数据库。_send_email
通过一些调试,我发现代码在 Tank Auth 的控制器上发送邮件时卡住了。下面是带有调试语句的代码。
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() 方法有问题。
我写了另一个控制器来测试电子邮件,如下所示
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 的控制器中不起作用,但在另一个测试控制器中工作正常。我交叉检查了 tank 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
。