PHP邮件功能错误

时间:2015-02-23 14:29:41

标签: php email sendmail

我遇到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";
}


?>

4 个答案:

答案 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个左右的字符后用回车符拆分它。