【问题标题】:Simple HTML/PHP form takes forever to send email简单的 HTML/PHP 表单需要很长时间才能发送电子邮件
【发布时间】:2017-05-19 10:32:07
【问题描述】:

我有一个使用 POST 函数和 PHP mailto() 函数的简单电子邮件表单。我的表单中有 PHP 行作为字段的值。发送时间太长了。任何帮助表示赞赏。

PHP:

<?php

if ($_POST['submit']) {

    if (!$_POST['name']) {
        $error="<br/>-Please enter your name";
    }
        if (!$_POST['email']) {
        $error.="<br/>-Please enter your email";
    }
        if (!$_POST['message']) {
        $error.="<br/>-Please enter a message";
    }
        if (!$_POST['check']) {
        $error.="<br/>-Please confirm you're real";
    }

    if ($error){
        $result="Ohh no, somethings not right... $error";
    }
    else {

        mail("email@email.com","website contact form","Name: ".$_POST['name']."
            Email: ".$_POST['email']."
            Message: ".$_POST['message']);

        {
            $result="Thank you, I will reply shortly.";
        }
    }
}
?>

HTML:

<form action="#contactme" method="post" role="form">
    <div class="form-group">
        <input type="text" name="name" placeholder="Enter your name" class="form-control form-control-lg" value="<? echo $_POST['name']; ?>" >
    </div>
    <div class="form-group">
        <input type="email" name="email" placeholder="Enter your email" class="form-control form-control-lg" value="<? echo $_POST['email']; ?>">
    </div>
    <div class="form-group">
        <textarea name="message" rows="5" class="form-control" placeholder="Your message..."><? echo $_POST['message']; ?> </textarea>
    </div>
    <div class="checkbox">
        <label>
            <input type="checkbox" name="check"><span class="real"> I am real</span>
        </label>
    </div>
    <div align="center">
        <input type="submit" name="submit" class="btn btn-secondary btn-lg" value="Send">
    </div>
</form>

【问题讨论】:

  • 请记住 PHP mail() 函数所做的就是将您的邮件传递到邮件服务器。它是执行所有实际发送电子邮件的邮件服务器。该过程将涉及病毒检查等,可能不会只发送您的电子邮件。
  • 然后,当邮件从您的邮件服务器发送时,接收邮件服务器必须重新进行病毒检查等,然后您才能看到它。此外,如果您使用的邮件客户端只会每 X 分钟检查一次电子邮件,这也会增加处理时间
  • 您需要使用filter_input()。机器人也可以填写复选框。
  • 此外,您还需要从输入中删除任何密件抄送或抄送。这样一来,您的脚本就不会被用于使用机器人群发邮件。
  • PHP 的 mailto() 函数实际上很慢。加速它的一种方法是在调用 mailto() 之前输出“谢谢”页面,这样用户就不会注意到它。另一种是存储消息并运行 cron 作业以发送电子邮件。

标签: php html forms mailto


【解决方案1】:

我已经完成了查询中的所有操作,现在应该可以更快地发送它,但也可能是此代码有错误,但从结构上看第一个查询是正确的。

<?php

if ($_POST['submit']) {

    if (!$_POST['name'] || !$_POST['email'] || !$_POST['message'] || !$_POST['check'] ||) {
        $error="<br/>-Please enter";
    }else
{

 if ($error){
        $result="Ohh no, somethings not right... $error";
    }
    else {

        mail("email@email.com","website contact form","Name: ".$_POST['name']."
            Email: ".$_POST['email']."
            Message: ".$_POST['message']);

        {
            $result="Thank you, I will reply shortly.";
        }
    } <-- If you have a mistake, take a clip away.


}


}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多