我正面临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个字符左右的回车符。