为什么$ header未定义?

时间:2017-07-17 11:03:21

标签: php apache xampp

我正在尝试使用php发送邮件。我已从SMTP端口和邮件中删除了注释,但Apache在第5行中抛出了未定义的变量$ header。这有什么不对?

<?php include "head.php";?>
<?php
$from= "smechailes@gmail.com";
$Headers = "";
$header .= "MIME-Version: 1.0 \r\n";
$header .= "Content-type: text/html; Charset= iso-859-1 \r\n";
$header .= "From: ".$from." \r\n";
$to = "setok321@gmail.com";
$subject = "test-mail";
$message ="<h1>hello</h1>";
$mail = mail($to, $subject, $message, $header);
echo (int)$mail;
?>
<?php include "foot.php";?>

3 个答案:

答案 0 :(得分:2)

$Headers = "";替换为$header = "";

<强>解释

PHP变量区分大小写。

您已初始化变量$Headers并假设它为$header

连接到$header,这是未定义的。

$Headers更改为$header

OR

变化

在所有地方

$header$Headers

答案 1 :(得分:0)

使用.=

时,您正在使用连接赋值运算符
$header .= "MIME-Version: 1.0 \r\n";

相当于:

$header = $header . "MIME-Version: 1.0 \r\n";

含义$ header用作赋值的一部分,应该先存在。

答案 2 :(得分:0)

使用下面的代码,因为在第5行$ header没有定义你连接字符串

<?php include "head.php";?>
<?php
$from= "smechailes@gmail.com";
//$Headers = "";
$header = "MIME-Version: 1.0 \r\n";
$header .= "Content-type: text/html; Charset= iso-859-1 \r\n";
$header .= "From: ".$from." \r\n";
$to = "setok321@gmail.com";
$subject = "test-mail";
$message ="<h1>hello</h1>";
$mail = mail($to, $subject, $message, $header);
echo (int)$mail;
?>
<?php include "foot.php";?>