PHP中的mail()无法正常工作
给定以下php代码:PHP中的mail()无法正常工作,php,Php,给定以下php代码: <html> <body> <?php $fname ="First Name = ".$_REQUEST['fname']."\n"; $lname ="Last Name = ".$_REQUEST['lname']."\n"; $breakfast = "Desired Breakfast = ".$_REQUEST['breakfast']."\n";
<html>
<body>
<?php
$fname ="First Name = ".$_REQUEST['fname']."\n";
$lname ="Last Name = ".$_REQUEST['lname']."\n";
$breakfast = "Desired Breakfast = ".$_REQUEST['breakfast']."\n";
$floor ="Desired Floor = ".$_REQUEST['floor']."\n";
$to = "XXXX@gmail.com";
$email="XXXX@gmail.com";
$subject="shenkar php form from erez geva site";
$body =$fname.$lname.$breakfast.$floor;
if (mail($to, $subject, $body, "From: $email")){
header("Location: http://localhost:9090/sent.html");
exit();
}else{
echo("<p>Message delivery failed...</p>");
}
?>
</body>
</html>
不起作用。
用户从中选择所需选项的索引HTML文件写得很好(据我教授所说),所以让我们假设问题在别处。
如果直接转到该php文件:localhost\send.php,则会出现以下错误:
警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“SMTP”和“SMTP\u端口”设置,或在第12行使用C:\wamp\www\send.php中的ini\u set()
这是什么意思?您的脚本正在尝试发送电子邮件,但本地服务器上没有正确配置的电子邮件服务
if(mail($to,$subject,$body,“From:$email”){
这是导致问题的一行。mail
函数是一个发送电子邮件的PHP函数
当脚本到达此调用时,PHP尝试连接到服务器上的邮件服务,但无法连接,因此失败
很可能没有邮件服务正在运行,或者可能是以非默认方式配置的。无论哪种方式,这都适用于您的系统管理员。您需要安装本地邮件服务器才能执行此操作。如果您想将其发送到外部电子邮件地址,它可能会以不需要的电子邮件结束,或者根本无法到达 我使用的一个好邮件服务器(我在Linux上使用它,但它也可用于Windows)是Axigen:
您可能需要一些mailservers的经验才能安装它,但一旦它工作,您就可以用它做任何您想做的事情。您不能从本地服务器发送电子邮件。请将文件上载到web服务器,然后试着运行此代码。它会工作。**我使用的是Wamp 2.2嗯,让我们看看……您是否有在本地主机上运行的邮件服务器d在端口25上侦听?这是因为除非您正确配置了邮件服务,否则无法从本地主机发送邮件。我知道这一点,但每次在本地工作时我都会忘记!不要使用PHP的
mail()
函数。它很糟糕。使用一个像样的邮件类,如phpMailer。我不能确定这一次是否足以解决您的问题,但它会使事情更容易处理和调试,更不用说它带来的所有附加功能。去您的教授/系统管理员那里。告诉他们您想从他们会:(a)告诉你正确的配置是什么/为你修复配置,(b)为你安装邮件服务器,(c)告诉你允许学生发送电子邮件不在他们的政策范围内。这是一个很好的Windows易用的替代方案。