【发布时间】:2013-02-03 00:32:16
【问题描述】:
我正在创建一个网站,并且正在使用 PHP 制作联系表格。它在页面本身上没有出现任何错误,但电子邮件从未出现在我的电子邮件的收件箱或垃圾邮件文件夹中。我的代码是:
$_NAME = $_POST["name"];
$_EMAIL = $_POST["reply"];
$_SUBJECT = $_POST["subject"];
$_MESSAGE = $_POST["message"];
$_MAILTO = "myemail@gmail.com";
$_SUBJECT = "Contact Form";
$_FORMCONTENT = "From: ".$_NAME." Subject: ".$_SUBJECT." Message: ".$_MESSAGE;
$_MAILHEADER = "Reply To: ".$_EMAIL;
mail($_MAILTO, $_SUBJECT, $_FORMCONTENT, $_MAILHEADER);
任何想法是什么问题?
编辑 --
这是 HTML 表单:
<form id="contact" name="contact" action="contact2.php" method="post">
<input type="text" class="name" name="name" id="name" placeholder="Your name (optional)" onfocus="placeholder=''" onblur="placeholder='Your name (optional)'" /><br><br>
<input type="text" class="reply" id="reply" name="reply" placeholder="Your email (optional)" onfocus="placeholder=''" onblur="placeholder='Your email (optional)'" /><br><br>
<input type="text" class="subject" id="subject" name="subject" placeholder="Subject" onfocus="placeholder=''" onblur="placeholder='Subject'" /><br><br>
<textarea class="message" id="message" name="message" rows="10" cols="50" placeholder="Enter your message" onfocus="placeholder=''" onblur="placeholder='Enter your message'"></textarea><br><br>
<input type="submit" class="send" id="send" name="send" value="Send Message" />
</form>
【问题讨论】:
-
请提供您的完整代码,包括 HTML 表单。
-
您是否在本地主机上进行测试?如果是这样,请将脚本移动到托管服务器并在那里尝试。所有大写字母的变量名称都不是很好看。确保也验证和清理用户的输入。
-
您的 SMTP 服务器是否在 php.ini 中正确配置?您的 SMTP 服务器是否正常工作?如果您有权访问 SMTP 服务器日志,您是否看到任何错误/消息?
-
虽然本身并没有错,但我必须告诉你,你选择的变量命名风格不是很聪明。您可以使用
$name代替$_NAME,或使用$email代替$_EMAIL,因为以下划线开头的变量通常由PHP 用于(至少)超全局变量(像 $_POST** 或 **$_GET) 并且在其他人中这样做会导致混乱。更多关于 superglobals 的信息在这里 - php.net/manual/en/language.variables.superglobals.php