我遇到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";
}
?>
答案 0 :(得分:3)
学习基本的PHP:
$body = $name '|' $email '|' $phone '|' $subject '|' $msg;
这是一个平坦的语法错误。你可能想要
$body = $name . '|' . $email . etc....
^-----^---- etc...
和
$header = 'From: $name <$email>';
^--------------------^---
'
- 封闭的字符串 NOT 插入变量。请改用"
:
$header = "From: $name <$email>";
答案 1 :(得分:1)
改为使用:
$body = $name . '|' . $email . '|' . $phone . '|' . $subject . '|' . $msg;
$header = "From: $name <$email>";
答案 2 :(得分:1)
$body = $name '|' $email '|' $phone '|' $subject '|' $msg;
$header = 'From: $name <$email>';
我在这2行中看到2个错误:
要将字符串(连接文本片段)连接成1个变量,您需要一个连接运算符(在每种编程语言中)。对于PHP,这是点(。)。
所以
$body = $name . '|' . $email . '|' . $phone . '|' . $subject . '|' . $msg;
第二:你在引号之间使用变量。 这可以通过两种方式工作:或者将它们拆分(最好)或使用双引号(使用为您执行此操作的函数)。
$header = 'From: ' . $name . ' <' . $email . '>';
答案 3 :(得分:0)
过长的邮件可能会被截断而无法正常工作。
在"\r\n"
之后添加$header = 'From: $name <$email>';
,如下所示:
$header = 'From: $name <$email>'."\r\n";
另外,如果您的$msg
可能很长,请在100个左右的字符后用回车符拆分它。