PHP mail()搞砸了HTML href

时间:2010-11-08 22:01:17

标签: php html email formatting

我在PHP脚本中有一个mail()函数。它发送HTML就好了 - 标题设置正确。然而,不正确的是HREF的代表 - 它们在Thunderbird中出现了所有乱码。

这是发送的内容:

<a href='/index.php?page=blahdeblah'>Click</a>

但收到的是:

Click</index.php?page=blahdeblah>

请注意,链接文本位于标记之前,没有结束标记(即使原始PHP字符串中包含一个IS)

我使用的标题是:

$headers = 'From: noreply@' . $url_short . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

(使用了一些PHP变量)

任何人都可以帮助解决这个特殊问题吗?

4 个答案:

答案 0 :(得分:1)

如果您检查邮件的来源并且看起来是正确的,则可能是thunderbird显示不正确的内容。如果您在电子邮件来源中看到错误,那么您的PHP脚本可能存在问题。

答案 1 :(得分:1)

ceejayoz提到它但是:链接到相对URL不会像预期的那样起作用,并且可能是问题的原因。如果这不能解决它,看看它是否也发生在其他读者身上。

答案 2 :(得分:1)

尝试将您的锚标记更改为:

  

<a href="http://www.domain.com/index.php?page=blahdeblah">Click</a>

  • 将完整域名的前缀添加到链接
  • 用双引号括起href属性而不是单引号(HTML属性应该始终用双引号,即使允许使用单引号)

答案 3 :(得分:0)

你能展示你的整个mail()电话吗?这可能是单引号使用不当的问题。