2013-11-27 2 views
1

전자 메일을 비동기 적으로 보내야합니다.비동기 전자 메일 php + jquery

jQuery 아약스 클라이언트와 PHP 백엔드가 실제로 전자 메일을 보내려면 아직 AJAX의 성공 방법이 호출되지 않았습니다. 나는 그것이 단순하다는 것을 이해한다. 그러나 아직 작동하지 않는 것 같다. 누군가 제 코드를보고 제가 잘못하고있는 것을 볼 수 있습니까? 정말 감사합니다.

$.ajax({ 
    type: "POST", 
    url: "mail.php", 
    data: {name: "manu", email: "[email protected]"}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     alert('mail sent'); 
     $('#divToBeWorkedOn').html(msg); 
    } 
}); 

내가 가지고는 mail.php

<?php 

header("Content-type: application/json"); 
$name = trim($_POST['name']); 
echo $name 
$email = trim($_POST['email']); 

$msg="my email"; 
$emailTo = '[email protected]'; 
$subject = 'Contact Form Submission from '.$name; 
$sendCopy = trim($_POST['sendCopy']); 
$body = "Name: $name \n\nEmail: $email \n\nMessage: $message"; 
$headers = 'From: Saddi website <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; 

mail($emailTo, $subject, $body, $headers); 
echo 1; 
?> 
+0

AJAX 호출에 필요한 HTTP 응답 코드는 무엇입니까? 웹 서버 로그에 오류가 표시 되나요? –

+0

어떻게 확인하나요? – CalZone

+0

이 주제에 관해서는 이미 많은 질문이 있습니다. 간단한 예제를 통해 답변을 드리겠습니다. (http://stackoverflow.com/questions/17021070/send-email-on-click/17021597#17021597) – Wez

답변

1

나는이 문제를 참조하십시오.

  1. JSON이 아닌 1 개만 표시됩니다. 당신은 당신이 JQuery와 success 또는 error 블록의 모든 결과를받지 않습니다이

header("Content-type: application/json"); 또는 header("Content-type: json/text");

있는 경우에 따라서 당신의 PHP 코드에서, 내 경험에

  • json_encode("msg"=>"1");을한다.

    success: function(msg) { 
        alert(msg); 
    } 
    

    msg는 null 값을 반환하거나 아무것도 반환하지 않습니다. 경고가 발생하지만 개체 개체와 같은 내용이 표시됩니다.

  • 관련 문제