我使用 Windows XP Pro 从头开始用 XHTML 编写了一个网站,其中包括一个 PHP 联系表。该网站位于 C 驱动器上的 XAMPP 文件夹中,并在我家中的计算机上的 localhost 下运行。
我想通过将电子邮件测试消息从它发送到我的实时电子邮件地址来测试表单。我已经尝试通过将SMTP = localhost
PHP.ini
文件中的更改为我的 ISP 服务器地址,激活该行,
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
并在下面一行的开头添加一个分号,
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
我已将我的实时电子邮件地址放在联系表单代码中,如下所示:
<?php
//send email
if(mail('my@emailaddress.net','Contact
form',$msg, 'From:postmaster@localhost')) {
?>
然后我尝试了另一种方法,将我的电子邮件地址放在下面if(POST) function
:
<?php
if($_POST) {
$fName = $_POST['fName'];
$fEmail = $_POST['fEmail'];
$fComments = $_POST['fComments'];
$fCaptcha = $_POST['fCaptcha'];
$random_string = $_POST['random_string'];
$to = "myemailaddress@myisp.net";
?>
并相应地更改了脚本中较低的邮件功能:
<?php
//send email
mail($to, $fName, $fEmail, $fComments);
if(mail($to,'Contact form',$msg, 'From:postmaster@localhost')) {
header("Location: ../email-thankyou.htm");
?>
当我单击提交按钮时,它第一次从我的 ISP 服务器生成了一个错误页面,并在以后的尝试中从 Firefox 浏览器生成了一个错误页面,所以发生了一些事情,但是在查看我的实时电子邮件帐户时,没有我的消息的迹象到达。
我还发现当我尝试第二种方法时单击提交按钮时,表单本身消失了,只剩下页面的背景颜色。
我已经通过 Stack Overflow 搜索了类似的查询,并尝试了一些建议但没有成功。
我正在使用 XAMPP 版本 3.1.0.3.1.0。尽管我精通 XHTML 编码,但在 PHP 编程方面我是一个完全的新手,因为这个使用 PHP 的项目是我第一次尝试掌握它,并且非常感谢所提供的任何帮助和建议,特别是关于编写 mail($to, and if(mail($to, out
正确。
我现在通过在我的 C 盘上下载并安装 smtp4dev 2009 找到了这个问题的答案。将这个小程序与 XAMPP 结合使用,我现在可以测试我的联系表单并成功接收消息。我唯一需要做的就是配置 XAMPP php ini 文件,如下所示:
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
就之前点击发送按钮时表单消失的问题而言 - 部分脚本位于错误的位置,经过一些尝试和错误定位后,这个问题得到了解决。