用户应该收到以下格式的电子邮件:----- 复制令牌:xxxxx并将其粘贴到此链接 ----- 我的代码:
$message="Copy the token: ".
token_generator(10)." ".
"And paste it in the link "."<a href='recover_pass_get_mail.php'>Link</a>";
其中xxxxx由token_generator(10)函数返回。 但用户获取的格式代码是写的
答案 0 :(得分:4)
好像你的电子邮件功能对html标签没有很好的反应,你可能在你的$header
对象中遗漏了这个。
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
读到这个, https://css-tricks.com/sending-nice-html-email-with-php/
它有很好的解释
答案 1 :(得分:2)
您应该考虑很多要点..您可以在以下示例代码中注意到它们:
<?php
$fromTitle = "From Title";
$emailFrom = 'example_from@gmail.com';
$emailTo = 'example_to@gmail.com';
$token = token_generator(10);
$subject = "Password Recovery";
$message = "Copy the token: $token And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>";
$random_hash = md5(uniqid(time()));
$header = "From: $fromTitle <$emailFrom>\r\n";
$header .= "Reply-To: ".$emailFrom."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$random_hash."\"\r\n\r\n";
$header .= "This is token email.\r\n";
$header .= "--".$random_hash."\r\n";
$header .= "Content-type:text/html; charset=UTF-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
@mail($emailTo, $subject, $message, $header);
?>
答案 2 :(得分:1)
您的字符串中存在一些问题,但是,这里有几点需要考虑:
首先,您可能希望(仅作为练习)将token_generator(10)
分配给脚本中的变量。
像这样的东西
$token = token_generator(10)
并将$token
传递给脚本
其次,您在使用电子邮件中的字符串时遇到了一些问题。您不需要将链接包装在a href
标签中(事实上,如果用户没有打开HTML电子邮件,那么这将是一个问题(许多人没有)。只需发布链接本身。< / p>
第三,为什么不将令牌附加到URL?这对用户来说是一个更容易的步骤。这是一个例子:
$message="Follow this link: http://(url)recover_pass_get_mail.php?token=$token";
然后你可以使用
从URL获取令牌$_GET['token'];
答案 3 :(得分:0)
你试过吗?
$myToken = token_generator(10);
$message="Copy the token: $myToken And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>";