【发布时间】:2016-07-04 10:12:56
【问题描述】:
我想使用 PHP CodeIgniter 向用户发送电子邮件验证链接。
这是我的控制器功能。
public function Sent_Confirmation_Email()
{
$emailid = $this->uri->segment(3);
$verificationLink = base_url() . 'MainController/Confirm_Activation/'.$emailid;
$msg .= "Please use the link below to activate your account..<br /><br /><br />";
$msg .= "<a href='".$verificationLink."' target='_blank'>VERIFY EMAIL</a><br /><br /><br />";
$msg .= "Kind regards,<br />";
$msg .= "Company Name";
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('GMT');
}
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'sender@gmail.com',
'smtp_pass' => 'password'
);
$this->load->library('email',$config);
$this->email->set_newline("\r\n");
$this->email->isHTML(true);
$this->email->from("sender@gmail.com");
$this->email->to("$emailid");
$this->email->subject("Email Confirmation - Courses and Tutors");
$this->email->message($msg);
if($this->email->send())
{
$this->session->set_flashdata('msg', 'A confirmation email has been sent to ' . $emailid .'. Please activate your account using the link provided.');
redirect(base_url() . 'MainController/EConfirmationPage/'.$emailid);
} else {
show_error($this->email->print_debugger());
}
}
请注意,我正在从本地主机发送电子邮件。我收到了电子邮件,但问题是它也显示了 html 标签。这是我收到的电子邮件:
Please use the link below to activate your account..<br /><br /><br /><a
href='http://localhost/tutorhunt/MainController/Confirm_Activation/fareedshuja@gmail.com'
target='_blank'>VERIFY EMAIL</a><br /><br /><br />Kind regards,<br />Company
Name
【问题讨论】:
-
使用
$msg .= "<a href='".$verificationLink."' target='_blank'>VERIFY EMAIL</a><br /><br /><br />"; -
你有什么错误吗?您知道电子邮件是否已发送吗?你查过垃圾邮件吗?
-
也许……它没有正确使用“重定向”功能。
-
$verificationLink = base_url() 。 'MainController/Confirm_Activation/'.$emailid;
-
我没有任何错误。记录已插入数据库,但我无法收到电子邮件。我使用的redirect(base_url()) 有什么问题吗??
标签: php codeigniter email