Windows 7 で WAMP サーバーを使用しており、Tank Auth をコード Igniter で構成しようとしています。
登録中に、画面がブラウザーで停止しました。ユーザーが正常に挿入されたことをデータベースで確認しました。_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 のコントローラーではメールの送信が機能しないのに、別のテスト コントローラーでは正常に機能するのはなぜですか。タンク認証構成ファイルと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');
コードは現在機能しています。言語に問題があるようです。問題を把握できるかどうかを確認します。$this->lang->line
メソッドに問題がある理由を誰かがすぐに提案できますか。