确保您已设置适当的电子邮件首选项以发送 HTML 格式的电子邮件,尤其是mailtype
首选项:
//You can add more email preferences here too
$config['mailtype'] = html;
$this->email->initialize($config);
$link = "www.domain.com/profile/forgot_password?user=".$username . "&key=".$key;
$this->email->message('You requested to reset your password. Follow the link. <a href="'.$link.'"> ' . $link . "</a>. Thank you,System Support.");
如果您愿意,可以将您的电子邮件首选项存储在配置文件中:
只需创建一个名为 的新文件,在该文件中email.php
添加$config
数组。然后将文件保存在config/email.php
,它将自动使用。
CodeIgniter 的用户指南还指定:
如果您发送 HTML 电子邮件,您必须将其作为完整的网页发送。
因此,这意味着包括您将用于创建网页的所有相关标签(<html>
等<body>
)。为了使这更易于管理,您可以将电子邮件模板存储在视图文件中,例如:
application/views/email_templates/password_reset.php
此文件可以包含要作为电子邮件发送的相关 HTML,例如:
//Other appropriate HTML tags...
<p>You requested to reset your password. Follow the link. <a href="<?php echo $link; ?>"><?php echo $link; ?></a>. Thank you, System Support.</p>
//Other appropriate HTML tags...
然后,您可以将链接传递给视图,并将视图作为电子邮件发送:
$data['link'] = "www.domain.com/profile/forgot_password?user=".$username . "&key=".$key;
$email_message = $this->load->view('email_templates/password_reset', $data, true);
$this->email->message($email_message);
(我没有包括所有必需的电子邮件功能,例如等to()
,send()
但这些应该很容易解决。)