Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP邮件()搞乱了HTML href';s_Php_Html_Email_Formatting - Fatal编程技术网

PHP邮件()搞乱了HTML href';s

PHP邮件()搞乱了HTML href';s,php,html,email,formatting,Php,Html,Email,Formatting,我在PHP脚本中有一个mail()函数。它发送HTML很好-标题设置正确。然而,不正确的是HREF的表示——它们在《雷鸟》中都是乱七八糟的 以下是发送的内容: 但得到的是: 单击 请注意,链接文本位于标记之前,没有结束标记(即使原始PHP字符串中包含一个结束标记) 我使用的标题如下: $headers = 'From: noreply@' . $url_short . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= '

我在PHP脚本中有一个mail()函数。它发送HTML很好-标题设置正确。然而,不正确的是HREF的表示——它们在《雷鸟》中都是乱七八糟的

以下是发送的内容:

但得到的是:

单击

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

我使用的标题如下:

$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变量)


有人能帮你解决这个特殊问题吗?

如果你检查了消息的来源,它看起来是正确的,那么可能是thunderbird显示不正确。如果您看到电子邮件源中的错误,那么您的PHP脚本可能有问题。

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

能否显示整个mail()调用?这可能是单引号使用不当的一个问题。

能否显示整个mail()调用?这可能是单引号使用不当的问题。

ceejayoz提到了这一点,但是:链接到相对URL不会像您预期的那样起作用,这可能是问题的原因。如果这不能解决问题,那么看看其他读者是否也会遇到这种情况。

ceejayoz提到了这一点,但是:链接到相对URL不会像您预期的那样起作用,这可能是问题的原因。如果这还不能解决问题,那么看看它是否也发生在其他阅读器中。

尝试将锚定标记更改为:

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

尝试将锚定标签更改为:

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

如果没有其他内容,那么链接到
/index.php
就不太可能起作用。尝试一个绝对URL。这些链接在其他电子邮件客户机中有效吗?我发现引用也被删除了,这很奇怪。试着用双引号测试一下,看看它是否能做同样的事情?@stealthyninja-我用双引号测试了一下,但没用,谢谢:)@ceejayoz-谢谢!我使用/index.php真是太蠢了——电子邮件客户端根本不知道该使用哪台服务器!非常感谢!如果没有其他内容,链接到
/index.php
可能不起作用。尝试一个绝对URL。这些链接在其他电子邮件客户机中有效吗?我发现引用也被删除了,这很奇怪。试着用双引号测试一下,看看它是否能做同样的事情?@stealthyninja-我用双引号测试了一下,但没用,谢谢:)@ceejayoz-谢谢!我使用/index.php真是太蠢了——电子邮件客户端根本不知道该使用哪台服务器!非常感谢!“应该”是双引号有什么特别的原因吗?在我的经验中,用单引号括起html属性并不总是适用于所有浏览器/电子邮件客户端。我不知道发生这种情况的确切原因,但我猜这是因为不同的语言对单引号和双引号的解释不同。在本例中,单引号可能会弄乱PHP mail()函数(如Resorath所指出的),该函数构造了要在电子邮件中发送的最后一条消息。这非常有效-我没有使用http://path。至于单引号和双引号,这是因为它们位于PHP字符串中。我会改变它们以保持兼容性。有什么特别的原因让“应该”是双引号吗?在我的经验中,用单引号括起html属性并不总是适用于所有浏览器/电子邮件客户端。我不知道发生这种情况的确切原因,但我猜这是因为不同的语言对单引号和双引号的解释不同。在本例中,单引号可能会弄乱PHP mail()函数(如Resorath所指出的),该函数构造了要在电子邮件中发送的最后一条消息。这非常有效-我没有使用http://path。至于单引号和双引号,这是因为它们位于PHP字符串中。不过我会改变它们以保持兼容性。请参阅我在@ceejayoz上面的评论。谢谢见我在上面的评论@ceejayoz。谢谢不是,但是谢谢。问题不在于使用整个URL(位),但无论如何还是要感谢:)不是,但是谢谢。问题不在于使用整个URL(位),但无论如何还是要感谢:)