使用 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>";
您的字符串中存在一些问题,但是,这里有几点需要考虑:
首先,您可能想要(作为练习)将 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);
?>
用户应该收到格式如下的电子邮件:----- 复制令牌: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>";
您的字符串中存在一些问题,但是,这里有几点需要考虑:
首先,您可能想要(作为练习)将 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);
?>