ion auth忘记密码邮件未在邮件帐户中收到

时间:2015-02-13 09:44:00

标签: javascript php codeigniter email ion-auth

在离职身份验证中,我的忘记密码邮件已成功发送但未在我​​的电子邮件帐户中收到... 我搜索了许多教程,但找不到任何解决方案。

请帮我解决这个问题。

我的电子邮件配置文件

$config['email_config'] = array(
    'mailtype' => 'html',
    'protocol' => 'smtp',

    'smtp_host' => 'ssl://smtp.gmail.com',
    'smtp_port' => '465',
    'smtp_user' => 'k10kevalam@gmail.com',
    'smtp_pass' => 'k10@kevalam',

);
在ion_auth配置

$config['use_ci_email'] = TRUE; // Send Email using the builtin CI email class, if false it will return the code and the identity

$config['email_config'] = 'file';

<_>在ion_auth.php库中

if ($this->email->send())
		{
             echo $this->email->print_debugger();
             $this->set_message('forgot_password_successful');
	   		return TRUE;
        }

显示消息:“发送电子邮件”

在我的ion_auth.php控制器中

function forgot_password()
	{
            {
		   $this->form_validation->set_rules('email', $this->lang->line('forgot_password_username_identity_label'), 'required');
		}
		else
		{
		   $this->form_validation->set_rules('email', $this->lang->line('forgot_password_validation_email_label'), 'required|valid_email');
		}


		if ($this->form_validation->run() == false)
		{
			//setup the input
			$this->data['email'] = array('name' => 'email',
				'id' => 'email',
			);

			if ( $this->config->item('identity', 'ion_auth') == 'username' ){
				$this->data['identity_label'] = $this->lang->line('forgot_password_username_identity_label');
			}
			else
			{
				$this->data['identity_label'] = $this->lang->line('forgot_password_email_identity_label');
			}

			//set any errors and display the form
			$this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');
			$this->_render_page('auth/forgot_password', $this->data);
		}
		else
		{
			// get identity from username or email
			if ( $this->config->item('identity', 'ion_auth') == 'username' ){
				$identity = $this->ion_auth->where('username', strtolower($this->input->post('email')))->users()->row();
			}
			else
			{
				$identity = $this->ion_auth->where('email', strtolower($this->input->post('email')))->users()->row();
			}
	            	if(empty($identity)) {

	            		if($this->config->item('identity', 'ion_auth') == 'username')
		            	{
                                   $this->ion_auth->set_message('forgot_password_username_not_found');
		            	}
		            	else
		            	{
		            	   $this->ion_auth->set_message('forgot_password_email_not_found');
		            	}

		                $this->session->set_flashdata('message', $this->ion_auth->messages());
                		redirect("auth/forgot_password", 'refresh');
            		}

			//run the forgotten password method to email an activation code to the user
			$forgotten = $this->ion_auth->forgotten_password($identity->{$this->config->item('identity', 'ion_auth')});

			if ($forgotten)
			{
				//if there were no errors
				$this->session->set_flashdata('message', $this->ion_auth->messages());
				
                                redirect("auth/login", 'refresh'); //we should display a confirmation page here instead of the login page
			}
			else
			{
				$this->session->set_flashdata('message', $this->ion_auth->errors());
                                				
                        redirect("auth/forgot_password", 'refresh');
			}
		}
	}

我应该改变什么。?

您的帮助将受到赞赏。

提前致谢...

2 个答案:

答案 0 :(得分:0)

最好的办法就是创建一个测试控制器方法,发送电子邮件以确定正确的电子邮件设置。

答案 1 :(得分:0)

创建了一个电子邮件文件并更改了gmail中的一些安全性... 在我的电子邮件配置文件

<?php
$config["mailtype"] = "html";
$config["protocol"] = "smtp";
$config["smtp_host"] = "ssl://smtp.googlemail.com";
$config["smtp_user"] = "xxxx@gmail.com";
$config["smtp_pass"] = "xxxx";
$config["smtp_port"] = 465;
$config["crlf"] = "\r\n";
$config["newline"] = "\r\n";
?>

建议制作电子邮件配置文件