我有一个简单的表单,带有简单的邮件功能:
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$company = $_REQUEST['company'] ;
$phone = $_REQUEST['phone'] ;
$message= $_REQUEST['message'] ;
mail( "$webmaster_email", "Website Form", "From: noreply@mysite.com",
"From: $email \n
Name: $name \n
Phone: $phone\n
Message: $message\n ");
header( "Location: $thankyou_page" );
但是,当我测试时,我很少接收来自它的邮件而且似乎卡住了 - 即:它不会重定向到thankyou页面。
我已经安排了回声进行测试,一切正常,直到mail()函数。
我已经与我的托管服务提供商核实过,并且没有邮件队列,而且PHP正常运行。显然,我也检查了我的垃圾邮件文件夹。
有谁知道为什么这只会在某些时候有效?
答案 0 :(得分:2)
您混淆了mail()
函数的第3和第4个参数。第三个参数应包含消息,第四个参数应包含其他标头。当您在第4个参数中发送消息和所有(用户提供的...)变量时,这可能会导致您遇到的问题。
你应该能够改变它交换参数:
mail($webmaster_email, "Website Form",
"From: $email \n
Name: $name \n
Phone: $phone\n
Message: $message\n ",
"From: noreply@mysite.com");
您还应该添加错误处理; mail()
函数会返回true
或false
,具体取决于成功接受传递,因此您只需记录它返回的时间false
即可进行故障排除。