发送电子邮件时未指定输入文件 更新:没有任何php文件正在运行。有办法解决这个问题吗?

发送电子邮件时未指定输入文件 更新:没有任何php文件正在运行。有办法解决这个问题吗?,php,email,Php,Email,我有一个包含电子邮件详细信息的html页面: <form method="POST" sourceindex="44" action="semail.php" name="form1" onSubmit="return validate_form ( );"> <p> <label>Your name:<br> <input sourceindex="47" name="ma

我有一个包含电子邮件详细信息的html页面:

    <form method="POST" sourceindex="44" action="semail.php" name="form1" onSubmit="return validate_form ( );">
        <p>
          <label>Your name:<br>
            <input sourceindex="47" name="mail_name" class="text_field" type="text">
          </label>
        </p>
        <p>
          <label>Your e-mail:<br>
            <input sourceindex="51" name="mail_email" 
class="text_field" type="text">
          </label>
        </p>
        <p>
          <label>Message:<br>
            <textarea sourceindex="55" name="mail_msg" cols="45" 
rows="5" class="text_area"></textarea>
          </label>
        </p>
        <input name="B1" type="submit" class="form_button" value="" />
      </form>


您的姓名:

您的电子邮件:

信息:

下面是php代码(全部在semail.php中):


每当我单击send时,semail.php页面就会显示以下错误:未指定输入文件
有人能帮我找出问题出在哪里吗?

要首先检查并验证PHP是否正在运行,以及当前的Web托管公司是否可以使用PHP,请创建一个名为
check\u server.PHP的文件,并插入以下代码:

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);

?>
N.B.:我需要指出,您的PHP邮件处理程序没有包含一些必需的元素

例如,处理程序中不存在的
From:
元素/变量

$mail_email= $_POST['mail_email'];
此外,标题也不存在。Mail需要4个变量来发送/接收电子邮件

例如,您有
if(mail($mail\u to,$mail\u subject,$mail\u body))

应该读作
if(mail($mail\u to,$mail\u subject,$mail\u body,$headers))

由于
中的
电子邮件丢失,省略标题将导致标记为垃圾邮件的邮件,并显示为
未知发件人

结合上述表格,am包括一份PHP邮件处理程序的工作副本:

<?php
$mail_to ="someEmail@hotmail.com";
$mail_email= $_POST['mail_email'];
$mail_subject = "Message From a Customer";

$mail_body ="Name of the Customer: ".$_POST['mail_name']."\n";
$mail_body .= "E-Mail Of the Coustomer: ".$_POST['mail_email']."\n";
$mail_body .= "The Message: ".$_POST['mail_msg']."\n";

$headers = "From: $mail_email \r\n";
$headers .= "Reply-To: $mail_email \r\n";

if(mail($mail_to, $mail_subject, $mail_body, $headers))

echo "Thanks for your Message";
else 
echo "Failed to send the e-mail";
?>

  • 阅读PHP.net上的
    mail()
    函数:

您可以添加一个;在echo的结尾“无法发送电子邮件”,并查看它是否工作可能是重复的?即使编码不同,问题也是一样的。马蒂耶洛:我试过了,但没用。还有什么其他建议吗?@Satya,你不需要
?>
。分号的实际用途是将不同的指令彼此区分开来,因此如果没有更多的指令并关闭php的标记,就不会有问题。尽管如此,我还是喜欢一直使用它们,即使是对于诸如
之类的简短说明也是如此。表单中的“发送邮件”按钮在哪里?验证semail.php的路径是否正确
$mail_email= $_POST['mail_email'];
<?php
$mail_to ="someEmail@hotmail.com";
$mail_email= $_POST['mail_email'];
$mail_subject = "Message From a Customer";

$mail_body ="Name of the Customer: ".$_POST['mail_name']."\n";
$mail_body .= "E-Mail Of the Coustomer: ".$_POST['mail_email']."\n";
$mail_body .= "The Message: ".$_POST['mail_msg']."\n";

$headers = "From: $mail_email \r\n";
$headers .= "Reply-To: $mail_email \r\n";

if(mail($mail_to, $mail_subject, $mail_body, $headers))

echo "Thanks for your Message";
else 
echo "Failed to send the e-mail";
?>