所以我在这个网站的新东西,我正在做我的单一课程的一部分,我的催泪人给了我代码。 在我的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!";
?>
答案 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>
字符对分隔,即代码为13
和10
的字符。由于它们不可打印,因此在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()
的值函数格式正确(如上所述)。