使用 php mail() 函数发送 link

send link using php mail() function

用户应该收到格式如下的电子邮件:----- 复制令牌:xxxxx 并将其粘贴到此 Link ----- 我的代码:

$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-1\r\n";

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

它有很好的解释

你试过了吗?

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

DEMO

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

首先,您可能想要(作为练习)将 token_generator(10) 分配给脚本中的变量。

像这样

$token = token_generator(10)

并将$token传递给脚本

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

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

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

然后您可以使用

从URL获取令牌
$_GET['token'];

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

<?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);   


?>