PHP邮件功能不起作用


PHP mail function dosen't work

我在下面的PHP文件中找不到我的错误。我想开机自检或提交操作有错误:

<?php   
// Initialize all variables
$name = $email = $betreff = $message = $tel = "";
$destination = 'mymailaddress@host.com';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!empty($_POST["name"])){
        $name = $_POST["name"];
    }
    if (!empty($_POST["email"])) {
        $email = $_POST["email"];
    }
    if (!empty($_POST["message"])){
        $message = $_POST["message"];
    }
    if (!empty($_POST["subject"]))  {
        $subject = $_POST["subject"];
    }
    if (!empty($_POST["tel"]))  {
        $tel = $_POST["tel"];
    }
}
if (isset($_POST['submit'])) {
    if ($_POST['name'] &&  $_POST['email'] &&  $_POST['message'] !=""){
        mail($destination, $subject, $message."'n 'n 'n Phone#:".$tel, "From: ".$name."<".$email.">");
        $mailSent = TRUE;
    }
}
if ($mailSent == TRUE){
        echo "Thank you!" ;
    }
?>

相应的 HTML 代码:

<form method="post" action="">
Name:*</br>
<input name="name" type="text" size="50" maxlength="60" value="<?php echo htmlspecialchars($name);?>"></br>
E-Mail:*</br>
<input name="email" type="text" size="50" maxlength="40" value="<?php echo htmlspecialchars($email);?>"></br>
Phone #:</br>
<input name="tel" type="text" size="50" maxlength="15" value="<?php echo htmlspecialchars($tel);?>"></br>
Subject:</br>
<input name="subject" type="text" size="50" maxlength="50" value="<?php echo htmlspecialchars($subject);?>"></br>
Message:*</br>
<textarea name="message" cols="50" rows="10" wrap="virtual"><?php echo htmlspecialchars($message);?></textarea></br>
<input type="submit" value="Send">
<submit>
</form>

我尝试了几次,但我从未收到电子邮件...有什么建议吗?

邮件依赖于你的条件语句if (isset($_POST['submit']))

因此,请为您的提交按钮提供相同的名称属性。

<input type="submit" value="Send" name="submit">

该条件语句中的所有内容均未执行。

使用错误报告后,会抛出未定义的索引提交...

将错误报告添加到文件顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code

旁注:错误报告只应在暂存中完成,而不应在生产环境中完成。


我还注意到一个杂散的<submit>标签;你可以删除它。

if (isset($_POST['submit'])) 

开机自检阵列是什么样的?上面的一行看起来应该是

if (isset($_POST['Send']))