Отправить электронную почту с помощью PHP / AJAX из HTML-формы

Я хочу отправить информацию, которую пользователь заполнил из HTML-формы, на мой адрес электронной почты. По моему мнению, это невозможно сделать, используя только клиентскую кодировку из-за характера работы электронной почты и предложив использовать PHP (в сочетании с AJAX) для обработки кода на стороне сервера. Я следил за гидом, но я не получаю никаких писем по своему электронному адресу. Я тестирую локально на своей машине (используя XAMPP), прежде чем разворачивать свой код на веб-пространстве моего клиента (goDaddy). Я хочу отметить, что раньше я никогда не использовал PHP.

Javascript:

var data = "This is my email"; $.ajax({ type: "POST", url: "email.php", data: data, dataType: "text" }); 

PHP (email.php):

 <?php $to = "myself@hotmail.com"; $subject = "This is my email"; $message = $_REQUEST; $send = mail($to, $subject, $message); if(!$send){ die(); } ?> 

XAMPP не имеет отправления по электронной почте самостоятельно по умолчанию. Вы можете проверить ссылки ниже;

Настройка php-почты в xampp

Как включить XAMPP для локального использования функции mail () php, чтобы я мог локально тестировать скрипты mail (), не загружая их на свой сервер?

Вы должны заменить $_REQUEST на $_REQUEST["data"] или что-то вроде этого, потому что $_REQUEST – это массив.

все время обновления страницы. Ниже мой код:

HTML 5:

 <form method="post" data-ajax="false"> <input type="text" name="email" placeholder="jack@example.com, jil@example.com"> <input type="submit" name="submit" value="Invite" class="submitBtn"> </form> 

JS:

 $('form').bind('submit',function(){ $.ajax({ type : 'POST', url : 'data/invite.php', data : $(this).serialize(), cache : false, dataType: 'text', success : function (serverResponse) { alert('mail sent successfully.'); }, error : function (jqXHR, textStatus, errorThrown) {alert('error sending mail');} }); }) 

PHP:

 <?php $to = $_POST['mail']; $name = 'Indusnet Technologies'; $subject = 'Think Recycle'; $text = 'Welcome to our site'; $message =' You received a mail from '.$name; $message .='Text of the message : '.$text; if(mail($to, $subject,$message)){ echo 'mail successful send'; } else{ echo 'there's some errors to send the mail, verify your server options'; } ?> 
 var data = "This is my email"; $.ajax({ type: "POST", url: "email.php", data: data, dataType: "text" }); 

Этот код будет таким, как это

 var data = "This is my email"; $.ajax({ type: "POST", url: "email.php", data: {"data": data}, dataType: "text" }); 

и получить код либо через $ _POST ['data'], либо $ _REQUEST ['data']

Вероятно, вы должны вернуть false в форму. Попробуй это:

 $('form').submit(function(){ $.ajax({ type : 'POST', url : 'data/invite.php', data : $(this).serialize(), cache : false, dataType: 'text', success : function (serverResponse) { alert('mail sent successfully.'); }, error : function (jqXHR, textStatus, errorThrown) {alert('error sending mail');} }); return false; })