Отправить письмо из кода JS, с помощью PHP

0

Я хочу отправить электронное письмо из кода 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-код, письмо не отправляется.

  1. Есть ли способ отправить почту, не используя какой-либо почтовый клиент на стороне клиента?

  2. Как я могу исправить этот код? благодаря

  • 0
    Это потому, что почтовые переменные пусты!
  • 0
    @ ChethanN: я не понимаю, что? где ?
Теги:
email

2 ответа

0

Вы отправляете HTTP-запрос GET обработчику PHP, а обработчик PHP требует, чтобы он выполнялся с HTTP POST и с соответствующими переменными POST. Попробуйте POSTing по URL с правильными переменными.

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

  • 0
    Вы имеете в виду $.post("../sendMail.php"); ?
  • 2
    Да, но вам нужно отправить дополнительную информацию (переменные сообщения)
Показать ещё 2 комментария
0

Попробуйте использовать это

$.post( "../sendMail.php", { name: "John", phone: "1234", email:"[email protected]" } );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню