2014-12-22 62 views
0

我正在使用Tank验证与codeigniter用于注册用户的电子邮件验证。注册后显示“注册成功,请检查您的激活电子邮件。”但我没有收到任何激活电子邮件。是Codeigniter坦克Auth未发送激活电子邮件

设置。我正在使用的application/config/email.php如下:控制器使用TankAuth

$config['protocol'] = "smtp"; 
$config['smtp_host'] = "ssl://smtp.googlemail.com"; 
$config['smtp_port'] = "465"; 
$config['smtp_user'] = "My Gmail";//also valid Google Apps Accounts 
$config['smtp_pass'] = "My Password"; 
$config['mailtype'] = 'html'; 
$config['charset'] = 'utf-8'; 
$config['newline'] = "\r\n"; 

这个默认的邮件功能:

function _send_email($type, $email, &$data) 
    { 
     $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)); 
     $this->email->send(); 
    } 

我需要做什么其他?由于我没有收到使用这些设置的任何激活电子邮件。

在此先感谢。

+0

你可能不需要SSL://在smtp_host变量,因为它是不属于主机名的协议。 – Joe

+0

@Joe改变了它。仍在收到消息“新的激活邮件已发送至[email protected]。按照电子邮件中的说明激活您的帐户。”但在INbox中没有电子邮件。 –

+0

我不使用谷歌应用程序的电子邮件,你必须在那里设置任何东西,让您使用他们的SMTP服务器发送电子邮件?看起来你的应用程序认为该消息正在发送。我还会编写一个快速方法来测试您可以使用这些凭据发送电子邮件,并将结果转储到屏幕上。 – Joe

回答

0

尝试以下设置:

$config['protocol'] = 'smtp'; 
$config['charset'] = 'iso-8859-1'; 
$config['mailtype'] = 'html'; 

$config['smtp_host'] = 'ssl://smtp.gmail.com'; 
$config['smtp_port'] = '465'; 

$config['smtp_user'] = 'My Gmail'; 
$config['smtp_pass'] = 'My Password'; 

而且在发送邮件的功能,加设新行代码之前“从”

$this->email->set_newline("\r\n"); 
$this->email->from($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth')); 
+0

感谢您的回复,但我获得了相同的结果 –

相关问题