【问题标题】:How to make the contact us submit button send emails to my email?如何使联系我们提交按钮发送电子邮件到我的电子邮件?
【发布时间】:2017-01-25 10:41:14
【问题描述】:

我是新手,正在尝试使用我网站中的联系我们表单,它将联系我们表单查询发送到我的电子邮件。我正在使用模板,但我不知道如何将这些表单查询发送到我的电子邮件。

如何使这个联系我们表单在我的静态网站而不是服务器端语言中工作,因为我想让它与 html 和 javascript 一起工作,就像人们在表单中输入姓名、电子邮件和消息,然后单击提交时一样按钮,然后我将个人数据接收到我的电子邮件帐户

这些是代码。

<div class="container">
            <div class="row">
                <div class="col-lg-12 text-xs-center">
                    <h2 class="section-heading">Contact Us</h2>
                    <h3 class="section-subheading text-muted">Use ths form to contact us.</h3>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <form name="sentMessage" id="contactForm" novalidate>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name.">
                                    <p class="help-block text-danger"></p>
                                </div>
                                <div class="form-group">
                                    <input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email physics.">
                                    <p class="help-block text-danger"></p>
                                </div>
                                <div class="form-group">
                                    <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number.">
                                    <p class="help-block text-danger"></p>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea>
                                    <p class="help-block text-danger"></p>
                                </div>
                            </div>
                            <div class="clearfix"></div>
                            <div class="col-lg-12 text-xs-center">
                                <div id="success"></div>
                                <button type="submit" class="btn btn-xl">Send Message</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>

表单的 JavaScript 代码

   $(function() 
{ $("#contactForm input,#contactForm textarea").jqBootstrapValidation({
        preventSubmit: true,
        submitError: function($form, event, errors) {
            // additional error messages or events
        },
        submitSuccess: function($form, event) {
            event.preventDefault(); // prevent default submit behaviour
            // get values from FORM
            var name = $("input#name").val();
            var email = $("input#email").val();
            var phone = $("input#phone").val();
            var message = $("textarea#message").val();
            var firstName = name; // For Success/Failure Message
            // Check for white space in name for Success/Fail message
            if (firstName.indexOf(' ') >= 0) {
                firstName = name.split(' ').slice(0, -1).join(' ');
            }
            $.ajax({
                url: "././mail/contact_me.php",
                type: "POST",
                data: {
                    name: name,
                    phone: phone,
                    email: email,
                    message: message
                },
                cache: false,
                success: function() {
                    // Success message
                    $('#success').html("<div class='alert alert-success'>");
                    $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                        .append("</button>");
                    $('#success > .alert-success')
                        .append("<strong>Your message has been sent. </strong>");
                    $('#success > .alert-success')
                        .append('</div>');

                    //clear all fields
                    $('#contactForm').trigger("reset");
                },
                error: function() {
                    // Fail message
                    $('#success').html("<div class='alert alert-danger'>");
                    $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                        .append("</button>");
                    $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
                    $('#success > .alert-danger').append('</div>');
                    //clear all fields
                    $('#contactForm').trigger("reset");
                },
            });
        },
        filter: function() {
            return $(this).is(":visible");
        },
    });

    $("a[data-toggle=\"tab\"]").click(function(e) {
        e.preventDefault();
        $(this).tab("show");
    });
});
    $('#name').focus(function() {
    $('#success').html('');
});

【问题讨论】:

  • 你的contact_me.php-文件应该包含一些PHP代码来发送电子邮件
  • 如果可能的话,直接从网页上的客户端代码发送 s-mail 是个坏主意。你通常想回叫你的服务器来做这些事情。无论您从何处获取此样本,您都可能希望对其进行更彻底的研究。为了给你一个提示,这段代码在服务器上调用了一个 PHP 脚本“././mail/contact_me.php”,我想它实现了电子邮件发送。我建议你在这个脚本中学习你所拥有的样本。
  • 按照本教程获取核心 php 邮件:blog.teamtreehouse.com/create-ajax-contact-form 和本教程用于 PHP 邮件插件 sitepoint.com/community/t/…
  • 有人能告诉我php代码然后在jsfiddle中用php编写代码吗?在我的服务器中上传该 php 文件的位置?

标签: javascript html css twitter-bootstrap-3 contact-form


【解决方案1】:

所有表单值都可以在您的 php 代码中使用$_POST 访问

<?php
$recipient = 'your@email.com';
//construct your email text here
$message = 'Name: '.$_POST['name'].'<br/>Email: '.$_POST['email'].'Phone: '.$_POST['phone'].'<br/>Message: '.$_POST['message'];
mail($recipient, 'MAIL SUBJECT', $message);
?>

mail() 负责发送邮件。你可以在这里http://php.net/manual/en/function.mail.php阅读更多信息。

您可以在服务器的公共文件夹的主根目录中上传 php 脚本。但是,这意味着您只需将 ajax 调用的 url 更改为“contact_me.php”,前提是使用 javascript 的页面与 php 脚本位于同一文件夹中

【讨论】:

  • 这是一个糟糕的答案。首先,它会未经检查脚本接收到的所有数据,这极有可能导致电子邮件标头注入等问题(因此它基本上允许垃圾邮件发送者向任何人发送邮件),其次,它使用mail(),这是一个绝对原始的工具,也会引起很多问题(在接收端;这些邮件更容易被归类为垃圾邮件)。强烈建议使用 PHPMailer 或 SwiftMailer 等库来避免这种情况。
  • 我完全同意你的看法@CBroe,我试图简化事情,但我忽略了它的安全方面。每当我需要回答另一个问题时,我都会记住这一点
猜你喜欢
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2021-08-06
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
相关资源
最近更新 更多