1

每当我通过 PHP(由 jQuery、AJAX 到 PHP 生成的内容)发送邮件POST时,到达目的地时 URL 的基础就会丢失。

例如,我发送一封包含以下正文的邮件:

Click <a href="http://www.example.com/?u=parameter&i=otherparameter">HERE</a> to go to the login page, etc, etc..

Use this link or copy it to your browser's address bar if the above doesn't work:
<a href="http://www.example.com/?u=parameter&i=otherparameter">http://www.example.com/?u=parameter&i=otherparameter</a>

看起来像这样:

点击这里进入登录页面等等。

如果上述方法不起作用,请使用此链接或将其复制到浏览器的地址栏: http ://www.example.com/?u=parameter&i=otherparameter

但是,接收者得到相同的文本,只是没有链接的基本 URL。

的链接Click HERE只有 的 URL,/?u=parameter&i=otherparameter其他链接也是如此,但该链接的文本很好。所以它会转到打开邮件的页面并在那里附加参数。它看起来像这样:

点击这里进入登录页面等等。

如果上述方法不起作用,请使用此链接或将其复制到浏览器的地址栏: http ://www.example.com/?u=parameter&i=otherparameter

如您所见,链接将被定向到stackoverflow.com,而不是example.com。jQuery、AJAX 或 PHP 剥离了我的 HTML 是怎么回事,还是客户端问题?

(在 FF15/Chrome20/IE8、jQuery v1.7.2、PHP v5.3.5 中测试)


编辑

这就是我使用 PHP 发送邮件的方式:

$to      = $_POST['t'];
$subject = $_POST['s'];
$message = $_POST['m'];

$headers = "MIME-Version: 1.0" . "\r\n" . 
           "Content-type: text/html; charset=iso-8859-1" . "\r\n" . 
           "From: <noreply@example.com>" . "\r\n" .
           "X-Mailer: PHP/" . phpversion();

mail($to, $subject, $message, $headers);
4

1 回答 1

1

一个快速的解决方案是使用定义基本 url 和 _SERVER 全局数组阅读 php 手册中的文档以获取更多信息。但是邮件功能不应该失败......还有 AJAX 在邮件发布中的作用......那就是 php mail() 函数。您是从用户那里检索值还是使用 php 或数据库动态检索的值....

于 2012-09-03T15:53:29.893 回答