【问题标题】:Sending Email using Ajax [closed]使用 Ajax 发送电子邮件 [关闭]
【发布时间】:2012-11-26 06:58:51
【问题描述】:

我正在使用以下功能通过ajax 发送电子邮件。它没有发送name

var submitForm = function(){
                var name = jQuery('[name=name]').val();
                var email = jQuery('[name=email]').val();
                var gender = jQuery('[name=gender]').val();
$.ajax({
                    url: 'http://domainname.com/Email.php',
                    data: {name: name, email: email, phone: phone, gender: gender},
                    type: 'POST',
                    success: function ( data ) {
                        $(".rhino-container").html("Dear <b>"+name+"</b> You have applied successfully, Our career counseller will get in touch with you."); 
                    }
                });

            };

下面是email.php

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $gender = $_POST['gender'];
    $to = 'yourdomain@gmail.com';
    $from = $email;
    $subject = 'Apply Online Details from a user as below---';
    $body = "Hello Admin<br><br>
            Name: <strong>$name</strong><br>
            Email: $email<br>
            Phone: $phone<br>
            Gender: $gender<br>
                ";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= "From: $from";
    $ok = mail($to, $subject, $body, $headers);
    if($ok)
        echo '1';
    else
        echo '0';
?>

【问题讨论】:

  • 为什么不使用 id 作为选择器 jQuery('#yourID').val();而不是名称...做同样的事情,但代码更少且易于理解..(以防您的字段不是多个)
  • 您是否要在自己的计算机上发送?如果有,您的计算机上是否有 sendmail 功能?

标签: php ajax email


【解决方案1】:
var submitForm = function () {
    var name = $('input[name="name"]').val();
    var email = $('input[name="email"]').val();
    var phone = $('input[name="phone"]').val();
    var gender = $('input[name="gender"]').val();

    var param = {
        "name": name,
            "email": email,
            "phone": phone,
            "gender": gender
    };

    $.ajax({
        url: 'http://domainname.com/Email.php',
        data: param,
        type: 'POST',
        dataType: json,
        success: function (data) {
            if (data.status) {
                $(".rhino-container").html("Dear <b>" + name + "</b> You have applied successfully, Our career counseller will get in touch with you.");
            } else {
                $(".rhino-container").html("Something went wrong");
            }
        }
    });

};

请将此 PHP 用于服务器端。

header('内容类型:应用程序/json'); 回声 $ 好吗? json_encode(array("status" => true)) : json_encode("status" => false));

【讨论】:

    【解决方案2】:

    每一行都应该用 LF (\n) 分隔。行不应超过 70 个字符。不要使用休息。

    除此之外,您是否尝试过在您的服务器上发送电子邮件?没有ajax的直接php?也许您的邮件设置不正确,至少尝试一下。

    在 jQuery 中也使用选择器,我没有看到你的 html,但是做一些类似的事情

    var name = $('#name').val();
    

    祝你好运。

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 2018-06-26
      相关资源
      最近更新 更多