发送电子邮件验证链接与php codeigniter

我想使用PHP CodeIgniter向用户发送电子邮件验证链接。 </ p>

这是我的控制器功能。</ p>

 公共功能Sent_Confirmation_Email()
{
$ emailid = $ this-&gt; uri - &gt; segment(3);

$ verificationLink = base_url()。 'MainController / Confirm_Activation /'.$ emailid;

$ msg。=“请使用以下链接激活您的帐户..&lt; br /&gt;&lt; br /&gt;&lt; br /&gt;”;

$ msg。=“&lt; a href ='”。$ verificationLink。“'target ='_ blank'&gt; VERIFY EMAIL&lt; / a&gt;&lt; br /&gt;&lt; br /&gt;&lt; br /&gt;“;

$ msg。=”亲切的问候,&lt; br /&gt;“;

$ msg。=”公司名称“;

if(!ini_get('date.timezone'))
{
date_default_timezone_set('GMT');
}

$ config = array(
'protocol'=&gt;'smtp ',
'smtp_host'=&gt;'ssl://smtp.googlemail.com',
\'smtp_port'=&gt; 465,
'smtp_user'=&gt;'sender@gmail.com',
'smtp_pass'=&gt;'密码'
);

$ this-&gt; load-&gt; library('email',$ config);
$ this-&gt; email-&gt; set_newline(“

“);
$ this-&gt; email-&gt; isHTML(true);
$ this-&gt; email-&gt; from(”sender@gmail.com“);
$ this- &gt; email-&gt; to(“$ emailid”);
$ this-&gt; email-&gt; subject(“电子邮件确认 - 课程和导师”);
$ this-&gt; email-&gt; message( $ msg);

if($ this-&gt; email-&gt; send())
{
$ this-&gt; session-&gt; set_flashdata('msg','确认电子邮件已发送 请使用提供的链接激活您的帐户。');
redirect(base_url()。'MainController / EConfirmationPage /'.$ emailid);
} else {
sh ow_error($ this-&gt; email-&gt; print_debugger());
}
}
</ code> </ pre>

请注意,我正在从本地主机发送电子邮件。 我收到了电子邮件,但问题是它也显示了html标签。 这是我收到的电子邮件:</ p>

 请使用以下链接激活您的帐户..&lt; br /&gt;&lt; br /&gt;&lt; br /&gt  ;&lt; a 
href ='http://localhost/tutorhunt/MainController/Confirm_Activation/fareedshuja@gmail.com'
target ='_ blank'&gt; VERIFY EMAIL&lt; / a&gt;&lt; br /&gt;&lt; br / &gt;&lt; br /&gt;亲切的问候,&lt; br /&gt;公司
名称
</ code> </ pre>
</ div>

展开原文

原文

I want to send an email verification link to the user with PHP CodeIgniter.

This is my controller function.

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("
");
    $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());
    }
}

Note that I am sending emails from my localhost. I receive the email but the problem is it shows the html tags as well. This is the email which I received:

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

douyan8266
douyan8266 Codeignitor的默认邮件库很难坦白。它有几个问题,包括TLS连接。PHPMailer比默认的好多了。为什么不用它呢?
大约 4 年之前 回复
douwen4178
douwen4178 使用$this->email->set_mailtype(“html”);
大约 4 年之前 回复
dpdfh60088
dpdfh60088 现在我收到了电子邮件,但问题是它还显示了html标签。这是我收到的电子邮件:请使用以下链接激活您的帐户..<br/><br/><ahref='localhost/tutorhunt/MainController/Confirm_Activation/...'target='_blank'>验证电子邮件</a><br/><br/><br/>亲切的问候,<br/>公司名称
大约 4 年之前 回复
dopgl80062
dopgl80062 在href=''你必须只给url而不是重定向(...)
大约 4 年之前 回复
dsfhd78978
dsfhd78978 toolong
大约 4 年之前 回复
doulang6013
doulang6013 $verificationLink=base_url()。'MainController/ConfirmActivation/'.$电子邮件ID;
大约 4 年之前 回复
dongzha5934
dongzha5934 也许......它没有正确使用'重定向'功能。
大约 4 年之前 回复
doulachan8217
doulachan8217 你有什么错误吗?你知道电子邮件是否发送了吗?你签入垃圾邮件了吗?
大约 4 年之前 回复
dongwei5740
dongwei5740 toolong
大约 4 年之前 回复

2个回答



尝试初始化电子邮件库并添加mailtype,如下所示</ p>

  $ this-&gt  ; email-&gt; initialize(array(
'protocol'=&gt;'smtp',
'smtp_host'=&gt;'ssl:// mailserver',
'smtp_user'=&gt;'用户',
n'smtp_pass'=&gt;'密码',
'smtp_port'=&gt; 465,
'crlf'=&gt;“
”,
'newline'=&gt;“
” ,
'mailtype'=&gt;'html',
));
</ code> </ pre>
</ div>

展开原文

原文

Try to initialize email library and add mailtype as following

    $this->email->initialize(array(
          'protocol'  => 'smtp',
          'smtp_host' => 'ssl://mailserver',
          'smtp_user' => 'user',
          'smtp_pass' => 'password',
          'smtp_port' => 465,
          'crlf'      => "
",
          'newline'   => "
",
          'mailtype'  => 'html',
    ));



使用电子邮件模板在电子邮件中发送验证链接比将HTML内容添加为邮件并发送更简单。 </ p>


  • 修改要在电子邮件中发送的变量数组。</ li>
  • 加载该电子邮件模板视图并加载该变量数组 并正确设置模板中的变量。</ li>
    </ ul>

    以下是代码示例:</ p>

      $ this-&gt  ;的电子邮件 - &GT; set_newline( “ 
    ”);
    $的这 - &GT;的电子邮件 - &GT; isHTML(真);
    $的这 - &GT;的电子邮件 - &GT;从(“sender@gmail.com “);
    $ this-&gt; email-&gt; to(”$ emailid“);
    $ this-&gt; email-&gt; subject(”Email Confirmation - Courses and Tutors“);

    $ template_data = array(
    'verificationLink'=&gt; base_url()。'MainController / Confirm_Activation /'.$ emailid,
    'message'=&gt;'请使用以下链接激活您的帐户。 。',
    'company_name'=&gt;'测试公司'
    );

    $ body = $ this-&gt; load-&gt; view('your_view.php',['template_data'=&gt; $ template_data],TRUE); //在模板中正确设置变量
    $ this-&gt; email-&gt; message($ body);

    if($ this-&gt; email-&gt; send())
    {
    $ this - &gt; session-&gt; set_flashdata('msg','确认电子邮件已发送至'。$ emailid。'。请使用提供的链接激活您的帐户。');
    redirect(base_url()。'MainController /EConfirmationPage/'.$emailid);
    } else {
    show_error($ this-&gt; email-&gt; print_debugger());
    }
    </ code> </ pre>
    </ div >

展开原文

原文

To Send Verification Link In Email Using Email Template is simpler than adding HTML content as a message and send it.

  • Creare an array of the variable which you want to send in an email.
  • Load that email template view and load that variable array and set the variable in the template properly.

Here is the code sample:

$this->email->set_newline("
");
$this->email->isHTML(true);
$this->email->from("sender@gmail.com");
$this->email->to("$emailid");
$this->email->subject("Email Confirmation - Courses and Tutors");   

$template_data = array(
        'verificationLink' => base_url() . 'MainController/Confirm_Activation/'.$emailid,
        'message' => 'Please use the link below to activate your account..',
        'company_name' => 'test company'                            
);

$body = $this->load->view ('your_view.php', ['template_data'=>$template_data], TRUE); //Set the variable in template Properly
$this->email->message ( $body );

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());
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐