我在php中使用mail()函数发送带有此html内容的html邮件:
<a href="http://localhost/#/confirm?key=$confirmationLink">
http://localhost/#/confirm?key=$confirmationLink</a>
href在hotmail中输出如下: http://localhost/#/confirm%3fkey%3df327e518193e515f7c8226a006d0bc5934 点击链接时无效。
它在gmail中工作正常,它输出href为: http://localhost/#/confirm?key=ee9b70ca92c47210525743a4e7ab112535
如何让它在Hotmail中运行?
这就是我使用mail()函数的方式:
$to = 'blbl@blblb.dk';
$from = 'contact@bla.dk';
$subject = 'blabla';
$message = <<<EOD
<html>
<body>
<pre>
To get started please verify your account by clicking this link:
<a href="http://localhost/#/confirm?key=$confirmationLink">http://localhost/#/confirm?key=$confirmationLink</a>
</pre>
</body>
</html>
EOD;
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
$mail = mail($to, $subject, $message, $headers);
答案 0 :(得分:1)
显然,Hotmail会对网址进行编码,因此您需要在用户返回您的网站时对网址进行解码。我认为你调用一个AJAX脚本(url中的hash的原因)并将参数发送到服务器端脚本 - 如果是这样,那么使用JavaScript的decodeURI函数,然后只发送url参数。无论如何答案是:你需要解码网址。