отправлять электронные письма из приложения PhoneGap Android - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу отправить форму обратной связи из приложения Android PhoneGap. Я использовал следующий код, который не работает

1) Я использовал приведенный ниже код Ajax и файлы JQuery для отправки запроса AJAX и формы HTML, я хочуотправить по электронной почте 4 html-полей

<script type="text/javascript" src="assets/js/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/geturi.js"></script>
     <script type="text/javascript">
    $(document).ready(function() {
        $("#send").click(function() {
            var fullName = $("#fullName").val();
            var emailId = $("#emailId").val();
            var mobileNo = $("#mobileNo").val();
            var message = $("#message").val();
            var dataString = "fullName=" + fullName + "&emailId=" + emailId + "&mobileNo=" + mobileNo + "&message=" + message + "&send=";
            if ($.trim(fullName).length > 0 & $.trim(emailId).length > 0 & $.trim(mobileNo).length > 0 & $.trim(message).length > 0) {
                $.ajax({
                    type: "POST",
                    url: "https://www.activebittechnologies.com/phonegap/mail.php",
                    data: dataString,
                    crossDomain: true, 
                    cache: false,
                    beforeSend: function() {
                        $("#send").val('Sending Enquiry...');
                    },
                    success: function(data) {
                        if (data == "success") {
                            alert("Mail Sent");
                            $("#send").val('submit');
                        } else if (data == "error") {
                            alert("error");
                        }
                    }
                });
            }
            return false;
        });
    });
    </script>


<div class="content form">
                        <div class="header">
                            <div class="header-overlay"></div><img src="assets/banner/5.jpg">
                            <div class="info">
                                <h3 class="title">Send Contact Enquiry</h3> 
                                <span data-close="#enquirepop" class="closeit"><i class="fa fa-times" aria-hidden="true"></i></span>
                                </div>
                        </div>

                        <div class="form-group">
                            <input id="fullName" name="fullName" type="text" class="form-control" placeholder="Full Name">
                        </div>
                        <div class="form-group">
                            <input id="emailId" name="emailId" type="text" class="form-control" placeholder="Email Id">
                        </div>
                        <div class="form-group">
                            <input id="mobileNo" name="mobileNo" type="text" class="form-control" placeholder="Mobile No">
                        </div>
                        <div class="form-group">
                            <textarea class="form-control" id="message" name="message" placeholder="Your Message" style="color:#fff;"></textarea>
                        </div>
                        <div class="text-right">
                            <input type="button" id="send" class="btn btn-primary" value="Send">
                        </div>


                    </div>

, которые не могут перейти на эту страницу из-за пробела в телефоне при установке на телефон Android. Ниже приведен скрипт php на сервере

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS");
$toEmail = "hotelinkonkan@gmail.com";
$mailHeaders = "From: " . $_POST["fullName"] . "<". $_POST["emailId"] .">\r\n";
$sentml=mail($toEmail, $_POST["fullName"], $_POST["message"], $mailHeaders);

if($sentml)
echo"success";
else 
echo"error";

?>

1 Ответ

0 голосов
/ 21 февраля 2019

Я использую $ ("# form1"). Serialize (), чтобы получить все значения из формы, и я проверяю значения на стороне сервера.Вы всегда должны проверять свою сторону сервера значений, потому что пользователи могут отправлять прямые сообщения на ваш php без какой-либо проверки JavaScript.

Надеюсь, это поможет.

<script type="text/javascript" src="assets/js/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="assets/js/jquery.js"></script>
    <script type="text/javascript" src="assets/js/geturi.js"></script>
     <script type="text/javascript">
    $(document).ready(function() {
        $("#send").click(function() {

                $.ajax({
                    type: "POST",
                    url: "https://www.activebittechnologies.com/phonegap/mail.php",
                    data: $("#form1").serialize(), 
                    crossDomain: true, 
                    cache: false,
                    beforeSend: function() {
                        $("#send").val('Sending Enquiry...');
                    },
                    success: function(data) {
                         console.log(data);
                        if (data == "success") {
                            alert("Mail Sent");
                            $("#send").val('submit');
                        } else if (data == "error") {
                            alert("error");
                        }
                    }
                });

            return false;
        });
    });
    </script>

<form id='form1' >
<div class="content form">
                        <div class="header">
                            <div class="header-overlay"></div><img src="assets/banner/5.jpg">
                            <div class="info">
                                <h3 class="title">Send Contact Enquiry</h3> 
                                <span data-close="#enquirepop" class="closeit"><i class="fa fa-times" aria-hidden="true"></i></span>
                                </div>
                        </div>

                        <div class="form-group">
                            <input id="fullName" name="fullName" type="text" class="form-control" placeholder="Full Name">
                        </div>
                        <div class="form-group">
                            <input id="emailId" name="emailId" type="text" class="form-control" placeholder="Email Id">
                        </div>
                        <div class="form-group">
                            <input id="mobileNo" name="mobileNo" type="text" class="form-control" placeholder="Mobile No">
                        </div>
                        <div class="form-group">
                            <textarea class="form-control" id="message" name="message" placeholder="Your Message" style="color:#fff;"></textarea>
                        </div>
                        <div class="text-right">
                            <input type="button" id="send" class="btn btn-primary" value="Send">
                        </div>


                    </div></form>


...