PHP输出缓冲不起作用

时间:2010-07-08 04:33:40

标签: php email output-buffering

我有一个php文件,我试图使用php邮件功能在电子邮件中发送输出(PHPMailer不是一个选项,因为我正在使用的服务器限制他们的SMTP服务器)。邮件功能的代码是

$to = "xxx@example.com";
$subject = "Outdoor Grill Service Request";
ob_start();
require 'grill-form.php';
$body = ob_get_clean();
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers = "From: xxx@example.com\n";
mail($to,$subject,$body,$headers);
echo "Mail sent to $to";

grill-form.php是一个php文件,其中包含一个html文件,该文件包含从表单填充php变量的表。这完全使用PHPMailer,但一旦我迁移到标准的PHP邮件是“搞砸”。

我遇到的问题是当电子邮件发送时我得到原始HTML代码而不是grill-form.php(带有值的样式表)的输出。我对php邮件功能知之甚少,所以我可能会遗漏一些愚蠢的东西。

想知道我做错了什么。提前感谢您的帮助,人们是最好的。

1 个答案:

答案 0 :(得分:1)

假设这是您的实际代码,您将使用第三个声明覆盖$headers变量,而不是附加到您拥有的内容。 Content-type标头永远不会出现。

顺便说一下,PHPMailer确实支持SMTP - 究竟是什么意思“限制他们的SMTP服务器”? (这是一个例子:http://phpmailer.worxware.com/index.php?pg=examplebsmtp