我有以下代码:
$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.");
我想在这里尝试的是在用户希望重置密码时为用户创建友好的消息。应该是:
您要求重置密码。点击这里进行操作!
点击这里的单词,它应该在href中有链接转到重置页面。这不起作用,因为上面的代码似乎是转义html因此它在发送的消息中显示以下内容。它应该解释HTML标签不发送它们。
<a href='hdkjahskjdaskhdsjkahd'> djadjalksjdklasjdkajsd</a>
答案 0 :(得分:1)
确保您已设置相应的电子邮件首选项以发送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的用户指南specifies that:
如果您发送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()
等,但这些功能应该很容易解决。)
答案 1 :(得分:0)
您需要将 mailtype 设置为 html