为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?
Posted
技术标签:
【中文标题】为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?【英文标题】:Why isn't my php sending my contact form input to my email?为什么我的 php 没有将我的联系表单输入发送到我的电子邮件? 【发布时间】:2015-09-01 18:03:41 【问题描述】:我正在尝试编写一些 php,它将提交我的“联系表格”并将输入发送到给定的电子邮件。
在互联网上,我找到了以下代码:
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
else /* send the submitted data */
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
else
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("vik.srk@hotmail.com", $subject, $message, $from);
echo "Email sent!";
?>
当我点击提交时,没有任何内容发送到我的收件箱!
【问题讨论】:
我们需要更多信息,例如您编辑的配置文件,以及浏览器地址栏中的位置 您的 XAMPP 上未启用 PHP。 确保使用服务器地址,而不是文件地址" 对不起,伙计们,它现在正在工作。但是还是有问题,上面编辑过。 欢迎来到 Stack Overflow,请不要使用代码 sn-p for PHP,因为代码 sn-p 无法解释它,而是使用代码示例(第五个图标:
或通过 ctrl+k快捷方式)。
【参考方案1】:
我更新了您的代码以实际测试邮件是否已发送...我怀疑您尚未配置 SMTP 电子邮件服务器,这意味着 PHP 无法发送电子邮件。
您的代码现在检查 mail() 是否成功。
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
else /* send the submitted data */
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
else
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
$MailSent = mail("vik.srk@hotmail.com", $subject, $message, $from);
if($MailSent == true)
echo 'Mail Sent';
else
echo 'Mail failed';
?>
如果它失败了,那么你就知道邮件功能有问题。您也可以将error_reporting(-1)
放在顶部以打开错误,以防您遇到任何语法错误。就像我之前说的,我猜您没有配置邮件服务器,这就是您收不到任何电子邮件的原因。
【讨论】:
以上是关于为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章