sendmail.php文件是不是正常工作?

时间:2015-04-21 11:40:40

标签: php sendmail

所以我在这个网站的新东西,我正在做我的单一课程的一部分,我的催泪人给了我代码。 在我的sendmail.php的代码中,我在我的网站上测试了我的联系表单,我得到了“失败!”#39;代码中的消息,但这就是我得到的,没有别的。 当它工作时,我会收到电子邮件,但知道放入联系表格的信息,我无法改变编码。有人可以帮帮我吗?谢谢

<?php
/*Here you are going to declare the variables*/
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
//Save visitor name and entered message into one variable:
$formcontent="VISITOR NAME: $name\\n\\nFEEDBACK: $message";
$recipient = "denisedaykinphotography@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email\\r\\n";
$mailheader .= "Reply-To: $email\\r\\n";
$mailheader .= "MIME-Version: 1.0\\r\\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Failure!");
echo "Thank You!";
?>

3 个答案:

答案 0 :(得分:0)

将$变量保持在“字符串”之外。 意思是:

$name = "Bob";
"hello $name" != "hello " . $name;

答案 1 :(得分:0)

托管/您的计算机目前很可能不支持发送邮件。

如果这是您的计算机,您可以使用我在类似线程中提供的this answer并设置您自己的SMTP服务器(即负责发送电子邮件的服务),或使用Internet上的免费服务器

如果这不是您的计算机,并且您无法真正更改配置/服务器配置等,那么我建议您将脚本移动到其他位置。

答案 2 :(得分:0)

变量$mailheader的值是错误的。现在,echo($mailheader)显示如下内容:

From: user@example.org\r\nReply-To: user@example.org\r\nMIME-Version: 1.0\r\n

这是错误的。

标题行必须用<CR><LF>字符对分隔,即代码为1310的字符。由于它们不可打印,因此在PHP double-quoted strings中,这些字符已编码"\r""\n"

关于你的消息内容的同样的评论。

关于此问题,代码应如下所示:

$formcontent = "VISITOR NAME: $name\n\nFEEDBACK: $message";
$recipient = "denisedaykinphotography@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email\r\n";
$mailheader .= "Reply-To: $email\r\n";
$mailheader .= "MIME-Version: 1.0\r\n";

在检查PHP配置和其他与邮件相关的问题之前,这些答案并未真正解决您的邮件未被发送而是的问题,请确保您提供给PHP mail()的值函数格式正确(如上所述)。