Я хочу отправить электронное письмо из кода JS с помощью PHP.
function validateForm(){
// sending a mail
$.get("../sendMail.php");
// more code
}
И у меня есть файл с именем sendMail.php
, который хранится на сервере:
sendMail.php:
<?php
session_start();
if(($_POST['name'] == '') || ($_POST['phone'] == '') || ($_POST['email'] == '')) {
/*------
echo 'Complete the forms correctly <br>
Click <a href="contact.php">here</a> to return on contact us page.';
-------*/
header("location:index.php");
} else {
$to = '[email protected]';
$send_date = date('d-m-Y H:i:s');
$subject = 'Hello';
if (isset($_POST['check'])) {
$check = "yes";
} else {
$check = "no";
}
$message .= "<br>"."<br>";
$message .= "<strong>Date and time:</strong> ".$send_date ."<br/>";
$message .="<strong>Name:</strong> ".$_POST['name']."<br/>";
$message .="<strong>Phone: </strong> ".$_POST['phone']."<br/>";
$message .="<strong>Email: </strong> ".$_POST['email']."<br/>";
$message .="<strong>Agree to post ads:</strong> ".$check."<br/>";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8"' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
mail($to, $subject, $message,$headers);
/*-----
echo 'The message was send <br>
Click <a href="index.php">here</a> to return on home page.';
window.location.href=""
-----*/
$_SESSION['thankyou']='Your email has been sent successfully';
header ('Location: index.php');
}
?>
Но когда я запускаю JS-код, письмо не отправляется.
Есть ли способ отправить почту, не используя какой-либо почтовый клиент на стороне клиента?
Как я могу исправить этот код? благодаря
Вы отправляете HTTP-запрос GET обработчику PHP, а обработчик PHP требует, чтобы он выполнялся с HTTP POST и с соответствующими переменными POST. Попробуйте POSTing по URL с правильными переменными.
(Кроме того, вы должны добавить специальную уникальную подпись, чтобы предотвратить использование формы для спама).
$.post("../sendMail.php");
?
Попробуйте использовать это
$.post( "../sendMail.php", { name: "John", phone: "1234", email:"[email protected]" } );