【问题标题】:How to send mail from a HTML form? [duplicate]如何从 HTML 表单发送邮件? [复制]
【发布时间】:2018-04-02 04:18:44
【问题描述】:

我制作了一个表单,我的任务是将邮件发送到邮件服务器。我尝试使用mailto HTML 属性。但失败了。然后从 php 开始。它也不起作用。所以我非常需要帮助。

<form method="post" action="form-to-email.html">
                                <div class="col-md-12">
                                    <div class="form-group">
                                        <label for="exampleInputName">Your Name (required)</label>
                                        <input type="text" class="form-control"  name="name" placeholder="Enter Your Name">

                                    </div>
                                    <div class="form-group">
                                        <label for="exampleInputEmail1">Your Email (required)</label>
                                        <input type="Email" class="form-control" name="email" placeholder="Enter Your Email">

                                    </div>
                                    <div class="form-group">
                                        <label for="exampleInputTextarea">Your Message</label>
                                        <textarea class="form-control" placeholder="Enter Your Message" rows="4" name="message"></textarea>
                                    </div>

                                    <button type="submit" value="Send Email" class="btn btn-default">Send</button>

                                    </div>
                                </form>

这是我的 php 代码。

<?php
if(isset($_POST['name'])&&isset($_POST['email'])){
$name = $_POST['name'];
  $visitor_email = $_POST['email'];
  $message = $_POST['message'];
    $email_from = 'dbgreen71@heidianderson.com.au';
    $email_subject = "New Form submission";
    $email_body = "You have received a new message from the user $name.\n".    
                            "Here is the message:\n $message".    
$to = "dbgreen71@heidianderson.com.au";
  $headers = "From: $email_from \r\n";
  $headers .= "Reply-To: $visitor_email \r\n";
  mail($to,$email_subject,$email_body,$headers);
}
?>

请有人帮帮我。我真的找不到任何方法来完成这项任务。

【问题讨论】:

  • 您遇到任何错误?
  • 表单的操作指向一个 HTML 文件。让它成为 PHP 之一。
  • 这段代码运行良好。检查垃圾邮件文件夹。即使邮件也不在那里。然后服务器可能会阻塞。如果是这种情况,那么您需要使用 SMTP。并将此 form-to-email.html 更改为 form-to-email.php
  • @prasannaputtaswamy 上面的代码无法正常工作。 action 属性是.html,应该指向.php
  • 没有错误。我只是添加了.html。它应该只显示一个成功页面。

标签: php html forms email


【解决方案1】:

试试这个并告诉你是否有任何错误:

<?php
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];
    $email_subject = "New Form submission";
    $to = "dbgreen71@heidianderson.com.au";
    $subject = $email_subject;
    $email_from = 'dbgreen71@heidianderson.com.au';
    $header = "From:dbgreen71@heidianderson.com.au \r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-type: text/html\r\n";

    $retval = mail ($to,$subject,$message,$header);

    if( $retval == true ) {
    echo "Message sent successfully...";
    }else {
    echo "Message could not be sent...";
    $errorMessage = error_get_last()['message'];
    echo $errorMessage;
    }
?>

我还添加了错误处理代码,如果您遇到与邮件相关的任何错误,它将在不久的将来为您提供帮助。 另一件事,如果您需要标题然后只使用它,否则它没有用处。您甚至可以发送没有标题的电子邮件。

【讨论】:

  • 它正在工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多