PHP邮件函数错误


PHP Mail Function ERROR

我正面临PHP邮件函数的问题。问题是邮件已成功发送,但$body和$header无法正常工作

<?php
$name = $_POST['your_name'];
$email = $_POST['your_email'];
$phone = $_POST['your_phone'];
$subject = $_POST['your_subject'];
$msg = $_POST['your_message'];

$to = 'support@morelifelondon.net';
$subject = 'New Enquiry';
$body = $name '|' $email '|' $phone '|' $subject '|' $msg;
$header = 'From: $name <$email>';
if(mail($to, $subject, $body, $header)){
echo "Mail Sent";
}
else{
echo "Mail Failed";
}

?>

学习基本PHP:

$body = $name '|' $email '|' $phone '|' $subject '|' $msg;

这是一个明显的语法错误。你可能想要

$body = $name . '|' . $email . etc....
              ^-----^---- etc...

$header = 'From: $name <$email>';
          ^--------------------^---

'-封闭字符串执行NOT插值变量。改为使用"

$header = "From: $name <$email>";

这样使用:

$body = $name . '|' . $email . '|' . $phone . '|' . $subject . '|' . $msg;
$header = "From: $name <$email>";
$body = $name '|' $email '|' $phone '|' $subject '|' $msg;
$header = 'From: $name <$email>';

我在这两行中看到两个错误:

要将字符串(连接文本片段)连接到1个变量中,需要一个concat运算符(在每种编程语言中)。对于PHP,这是点(.).

所以

$body = $name . '|' . $email . '|' . $phone . '|' . $subject . '|' . $msg;

第二:在引号之间使用变量。这可以通过两种方式实现:或者将它们拆分(最好),或者使用双引号(使用一个为您做这件事的函数)。

$header = 'From: ' . $name . ' <' . $email . '>';

过长的消息可能会被截断,无法正常工作。

$header = 'From: $name <$email>';之后添加"'r'n",如下所示:

$header = 'From: $name <$email>'."'r'n";

此外,如果您的$msg可能很长,请将其拆分为100个字符左右的回车符。