0

我在 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

4

0 回答 0