在Tank Auth中发送邮件的问题

时间:2013-06-10 07:21:47

标签: codeigniter tankauth

我在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方法中存在问题的原因。

0 个答案:

没有答案