Я хочу отправить информацию, которую пользователь заполнил из 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; })