使用 PHP mail() 函数发送链接



用户应该收到一封格式为:-----复制令牌: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) 函数返回。但是用户得到的格式代码是编写

似乎您的电子邮件功能对 HTML 标签没有很好的反应,您可能在对象$header中缺少这一点。

$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";

读到这里,https://css-tricks.com/sending-nice-html-email-with-php/

它有很好的解释

您应该

考虑很多要点..您可以在以下示例代码中注意到它们:

<?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>rn";
$header .= "Reply-To: ".$emailFrom."rn";
$header .= "MIME-Version: 1.0rn";
$header .= "Content-Type: multipart/mixed; boundary="".$random_hash.""rnrn";
$header .= "This is token email.rn";
$header .= "--".$random_hash."rn";
$header .= "Content-type:text/html; charset=UTF-8rn";
$header .= "Content-Transfer-Encoding: 7bitrnrn";
@mail($emailTo, $subject, $message, $header);   

?>

您的字符串中存在一些问题,但是,这里有一些需要考虑的事项:

首先,您可能希望(作为实践问题)将token_generator(10)分配给脚本上的变量。

像这样的东西

$token = token_generator(10)

并将$token传递给脚本

其次,您在使用电子邮件中的字符串时遇到了一些问题。 您不需要将链接包装在a href标签中(事实上,如果用户没有打开HTML电子邮件(因为许多人没有打开),这将是一个问题)。 只需发布链接本身即可。

第三,为什么不直接将令牌附加到 URL 上? 对于用户来说,这是一个更简单的步骤。 下面是一个示例:

$message="Follow this link: http://(url)recover_pass_get_mail.php?token=$token";

然后你可以使用

$_GET['token'];

你试过吗?

$myToken = token_generator(10);
$message="Copy the token: $myToken And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>";

演示

最新更新