【发布时间】:2012-03-24 21:17:48
【问题描述】:
我正在使用一个简单的 Web 表单和一些 PHP 脚本将完成的表单发送到我的电子邮件。当我点击“提交”时,我收到了 PHP 文本“谢谢,我们会尽快联系”,但我没有收到包含提交表单信息的电子邮件。不知道是什么问题。
来自 HTML 文档:
<div class='' "letstalk_form">
<form method="get" action="contact.php" name="contact" id="contact">
<p>
<label for="txtfname">Name:</label><input type="text" tabindex="1" name="txtfname" id="txtfname" class="clsTextBox">
</p>
<p>
<label for="txtcompany">Company:</label><input type="text" tabindex="2" name="txtcompany" id="txtcompany" class="clsTextBox">
</p>
<p>
<label for="txtemail">E-mail:</label><input type="text" tabindex="3" name="txtemail" id="txtemail" class="clsTextBox">
</p>
<p>
Message:<textarea name="comments" id="comments" rows="2" cols="20"></textarea>
</p>
<p class="submit">
<input type="submit" value="Submit">
</p>
</form>
</div>
和 PHP
$msg = "Sender Name:\t$txtfname\n";
$msg .= "Sender Company:\t$txtcompany\n";
$msg .= "Sender E-mail:\t$txtemail\n";
$msg .= "Comments:\t$comments\n\n";
$recipient = "receiversemail@somewhere.com";
$subject = "from PI Website";
$mailheaders = "From: Lets Do Business <> \n";
$mailheaders .= "Reply-To: $txtemail\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<HTML><HEAD><TITLE>Form Sent!</TITLE></HEAD><BODY>";
echo "<H3 align=center>Thank You, $txtfname</H3>";
echo "<P align=center>Your submission was sent successfully.<br />
I will be contacting you soon.</P>";
echo "</BODY></HTML>";
?>
</div>
我用过这是过去的,效果很好。有什么我忽略的吗?感谢您的帮助!
编辑:我最终使用 Turgut Dursun 提供的链接 (html-form-guide.com/contact-form/php-email-contact-form.html ) 来设置表单。效果很好。谢谢。
【问题讨论】:
-
通过
if (mail($r, $s, $m, $h)) echo "mail sent"; else echo "mail NOT sent";之类的方式测试邮件是否真的发送了 -
尝试打开错误报告并检查您的
mail()调用的返回值。还要确保您在php.ini文件中正确设置了smtp。 -
可能有多种原因,可能邮件服务器没有设置。
-
可以使用 Gmail stackoverflow.com/questions/712392/…
-
@Sorin Buturugeanu:回显页面显示“邮件已发送”。我把你提供的“if”语句放在'mail(($recipient, $subject, $msg, $mailheaders);'语句下。谢谢你的回复。