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

使用php mail()函数发送链接,php,email,hyperlink,Php,Email,Hyperlink,用户应收到以下格式的电子邮件:----- 复制令牌xxxxx并将其粘贴到此链接中----- 我的代码: $message="Copy the token: ". token_generator(10)." ". "And paste it in the link "."<a href='recover_pass_get_mail.php'>Link</a>"; $message=“复制令牌:”。

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

$message="Copy the token:       ".
            token_generator(10)."       ".
            "And paste it in the link  "."<a href='recover_pass_get_mail.php'>Link</a>";
$message=“复制令牌:”。
令牌发生器(10)。“”。
“并将其粘贴到链接中”。”;
其中xxxxx由令牌_生成器(10)函数返回。
但是用户获取的格式代码是编写的

似乎您的电子邮件功能对html标记没有很好的反应,您可能在您的
$header
对象中遗漏了这一点

$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
读这个,

它有很好的解释

你试过了吗

$myToken = token_generator(10);
$message="Copy the token: $myToken And paste it in the link <a href='recover_pass_get_mail.php'>Link</a>";
$myToken=token\u生成器(10);
$message=“复制令牌:$myToken并将其粘贴到链接中”;

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

首先,您可能希望(作为实践事项)将
token\u生成器(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'];

您应该考虑以下几点。您可以在下面的示例代码中注意到它们:

<?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并将其粘贴到不正确的链接中expected@ParthoProtim能否附上发送电子邮件的代码$subject=“Password Recovery”;$message=“复制令牌:“.token\u生成器(10)”。并将其粘贴到链接“;$from=“xyz”邮件($email,$subject,$message,$from);你想让我复制粘贴这个网站上的内容吗?主要问题是人们在开始新问题之前不会用谷歌搜索。不,你应该从该网站添加一些代码,并根据你发布的链接解释它是如何、为什么、什么时候最适合OP的。我用谷歌搜索了很多次。我按照他们说的做了尝试。甚至来自stack overflow的答案都没有不适合我。但是这些答案适合提问者。好吧,@ParthoProtim我已经添加了你可能缺少的主要内容。在你的邮件功能中
mail($to,$subject,$message,$headers)
对象名称说明一切..对于不使用HTML邮件的用户,这将如何工作?是的。但我仍然得到:…并将其粘贴到@PedroLobito链接中,没有迹象表明
令牌生成器()
不起作用。问题是
显示为纯文本,而不是格式化的HTML。
令牌生成器()的功能是不相关的。
令牌生成器()
可以被忽略,我们可以想象Partho正在发送一些任意链接(例如,
)因此,你可以忽略这样一个事实:
token\u generator()
甚至是存在的,因为它确实与问题无关。我不知道为什么会有人否决投票。如果有什么问题,请告诉我们。我的答案经过测试并正确工作是
token\u generator(10)
回显任何内容?是的,我同意我们必须为此使用变量..我将更改我的答案..以及您的函数令牌\u生成器,因为我认为它应该返回令牌,而不是回显令牌。这是一个伟大而完整的答案。我只想提及:我认为您误用了边界(请参阅Kevin McMahon的这篇文章:);和
$from
应在
$header=“from:”.$from/…
中更改为
$fromTitle
(我已提交了对您的答案的编辑)。除此之外,回答得很好。在阅读本文之前,我甚至不知道
多部分/混合
MIME类型。@SpencerDoak好的,让我跟你说清楚,,,我以前在发送电子邮件方面遇到了很多问题,搜索之后,我发现这是我的最佳解决方案,但我不知道每种东西的含义是什么,你知道,有些也许你没有时间,你只需要解决这个问题,节省一天的时间……我必须多读一些;)