首页 文章

网站联系表格不发送电子邮件

提问于
浏览
-1

所以我最近将我的第一个网站上传到iPage服务器 . 该网站运行完美,但联系表格除外,因为某些原因拒绝从表格中发送任何电子邮件 . 我使用Post方法的PHP脚本,并尝试多次修复我的代码以纠正我可能输入的任何错误,但到目前为止无济于事 . 这是代码:

HTML:<

form action = "js/mailer.php" form method="post" name="contactform" id="contactform" class="form validate item_bottom" role="form">
                <div class="form-group">
                    <input type="text" name="name" id="name" class="form-control required" placeholder="Name">
                </div>
                <div class="form-group">
                    <input type="email" name="email" id="email" class="form-control required email" placeholder="Email">
                </div>
                <div class="form-group">
                    <textarea name="message" id="message" class="form-control input-lg required" rows="9" placeholder="Enter Message"></textarea>
                </div>
                <div class="form-group text-center">
                    <input type="submit" id="contactForm_submit" class="btn btn-trans btn-border btn-full" value="Submit">
                </div>
        </form>

PHP:

<?php
if(isset($_POST['submit'])) {

$to = "aravindm3095@gmail.com";
$subject = "Hello Aravind!";

// data the visitor provided
$name_field = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email_field = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$comment = filter_var($_POST['message'], FILTER_SANITIZE_STRING);

//constructing the message
$body = " From: $name_field\n\n E-Mail: $email_field\n\n Message:\n\n $comment";

mail($to, $subject, $body);

// redirect to confirmation
header('Location: confirmation.html');

} else {

echo "Failure";

}
?>

有人可以帮我弄这个吗?我的托管服务器可能出错,或者我的代码出错 . 非常感激您的帮忙

附加说明:按照提供的帮助(谢谢你)我对HTML和PHP进行了必要的更改,但表单仍无法正常运行 . 它没有回显失败或重定向到确认页面,并且在用Firefox检查元素时,我注意到在点击提交按钮时,其下面出现一个细分,说“发送......” . 但是没有发送电子邮件,也没有回显消息或打开页面 .

3 回答

  • 0

    从我在您发布的代码中看到的内容,PHP邮件脚本将无法正常工作,因为您正在检查名称为“submit”的POST变量是否存在,而不是表单中的提交按钮没有name属性 . 尝试给提交按钮一个名称,并将该名称放在PHP if语句中 .

  • 1

    表单中缺少提交按钮名称,您需要在提交按钮中添加名称,

    <input type="submit" name="submit" id="contactForm_submit" class="btn btn-trans btn-border btn-full" value="Submit">
                           ^^^^^^^^^^^^
    

    代替

    <input type="submit" id="contactForm_submit" class="btn btn-trans btn-border btn-full" value="Submit">
    
  • 0

    您的HTML部分应该如下所示,

    <form action = "js/mailer.php" method="post" name="contactform" id="contactform" class="form validate item_bottom" role="form">
        <div class="form-group">
            <input type="text" name="name" id="name" class="form-control required" placeholder="Name">
        </div>
        <div class="form-group">
            <input type="email" name="email" id="email" class="form-control required email" placeholder="Email">
        </div>
        <div class="form-group">
            <textarea name="message" id="message" class="form-control input-lg required" rows="9" placeholder="Enter Message"></textarea>
        </div>
        <div class="form-group text-center">
            <input type="submit" name="sendemail" id="contactForm_submit" class="btn btn-trans btn-border btn-full" value="Submit">
        </div>
    </form>
    

    在上面,我在提交按钮中添加了 name="sendemail" .

    你发送电子邮件的PHP脚本应该是这样的

    <?php
    if(isset($_POST['sendemail'])) { // <-- variable name changed
    
        $to = "aravindm3095@gmail.com";
        $subject = "Hello Aravind!";
    
        // data the visitor provided
        $name_field = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
        $email_field = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
        $comment = filter_var($_POST['message'], FILTER_SANITIZE_STRING);
    
        //constructing the message
        $body = " From: $name_field\n\n E-Mail: $email_field\n\n Message:\n\n $comment";
        $headers = "From: " . $email_field; // <-- Code added
        mail($to, $subject, $body, $headers); // <-- Code added
    
        // redirect to confirmation
        header('Location: confirmation.html');
        exit;
    } else {
        echo "Failure";
    }
    ?>
    

相关问题