给出以下php代码:
<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的邮件服务器,验证php.ini中的“SMTP”和“smtp_port”设置或使用C:\ wamp中的ini_set()第12行\ www \ send.php
它的含义是什么?
答案 0 :(得分:1)
您的脚本正在尝试发送电子邮件,但本地服务器上没有正确配置电子邮件服务。
if (mail($to, $subject, $body, "From: $email")){
这是引起问题的线。 mail
函数是一个发送电子邮件的PHP函数。
当您的脚本到达此调用时,PHP会尝试连接到您无法执行的服务器上的邮件服务,因此会失败。
很可能没有运行邮件服务,或者它可能以非默认方式配置。无论哪种方式,这都是您的系统管理员。
答案 1 :(得分:1)
您需要安装本地邮件服务器才能执行此操作。如果您想将其发送到外部电子邮件地址,它可能会收到不需要的电子邮件,或者可能根本不会发送。
我使用的一个好的邮件服务器(我在Linux上使用它,但它也适用于Windows)是Axigen:http://www.axigen.com/mail-server/download/
您可能需要一些邮件服务器的经验才能安装它,但一旦工作,您可以随心所欲地做任何事情。
答案 2 :(得分:-1)
您无法从本地服务器发送电子邮件。将文件上传到Web服务器,然后尝试运行此代码。它会工作。