폼메일을 사용중인데 처음에 들어갔을때는 신청을 해도 메일이 안옵니다.

폼메일을 사용중인데 처음에 들어갔을때는 신청을 해도 메일이 안옵니다.

QA

폼메일을 사용중인데 처음에 들어갔을때는 신청을 해도 메일이 안옵니다.

본문

폼메일을 사용중인데 처음에 들어갔을때는 신청을 해도 메일이 안옵니다.

하지만 두번째로 신청하면 또 메일이 옵니다.

무조건 첫번째는 안오는데요.. 문제가 무엇일까요?


신청하기를 눌렀을때 /#링크를 걸어두어서 안되는줄 알았는데 첫번째는 그냥 안오는 거였습니다.


html 은 

<input type="hidden" name="mailto" value="갈 메일">

과 입력양식

<div style="clear:both; position:relative;" id="event13_btn">

<a href="javascript:;" class="check" ><img src="img/fair_btn.png"></a>

</div>


<script>

// 체크박스 체크 하는 메소드

function agree_click(){

$("input:checkbox[name='info_check']").attr("checked", true);

$("input:checkbox[name='maket_check']").attr("checked", true);

}


// 폼 리셋 시키는 메소드

function reset(){

var pForm  = document.getElementById("sendForm");

pForm.reset();

}

var console = window.console || { log:function() {} };

function ajaxplay(){

var formData = $("#sendForm").serialize();

console.log(formData);


$.ajax({

url:'/mail.php',

type:'post',

dataType:'text',

data:formData

})

.done(function(data) {

console.log(data);

if(data == "true"){

alert('정상적으로 신청되었습니다.');

reset();

}else{

alert('실패하였습니다. 다시 신청 해주세요 ');

}

})

.fail(function(data) {

alert('통신 오류입니다. 다시 신청 해주세요 ');

})

.always(function(data) {

});

}


$(".check").click(function(){

var txtEle = $("#sendForm input[type=text]");

for(var i = 0; i < txtEle.length; i ++){

// console.log($(txtEle[i]).val());

if("" == $(txtEle[i]).val() || null == $(txtEle[i]).val()){

var error = $(txtEle[i]).attr("name");

switch (error){

case 'name': alert('성함을 기록해주세요');  $("input[name=name]").focus(); return false;

case 'tel2': alert('전화번호를 기록해주세요');   $("input[name=tel2]").focus();  return false;

case 'tel3': alert('전화번호를 기록해주세요');   $("input[name=tel3]").focus();  return false;

}

}

}

if ( "" == $("select[name=tel1]").val()){

alert("휴대폰 앞자리를 기록해주세요");

$("select[name=tel1]").focus();

return false;

}

if ( "" == $("select[name=wedding1]").val()){

alert("결혼 예정일을 선택해 주세요");

$("select[name=wedding1]").focus();

return false;

}

if ( "" == $("select[name=wedding2]").val()){

alert("결혼 예정일을 선택해 주세요");

$("select[name=wedding2]").focus();

return false;

}

if ( "" == $("select[name=wedding3]").val()){

alert("결혼 예정일을 선택해 주세요");

$("select[name=wedding3]").focus();

return false;

}

var check = $("input:checkbox[name='info_check']").is(":checked") ;

if ( check== false){

alert("개인정보 수집 및 이용에 동의해주세요");

$("select[name=wedding3]").focus();

return false;

}

var check = $("input:checkbox[name='maket_check']").is(":checked") ;

if ( check== false){

alert("마케팅 활용에 동의해주세요");

$("select[name=wedding3]").focus();

return false;

}

ajaxplay();

});



</script>


입니다.


또 mail.php 는


<?php

header("Content-Type: text/html; charset=UTF-8");

$charset = 'UTF-8';


$fromName = @$_POST['name'];

$from->tel1 =  @$_POST['tel1'];

$from->tel2 =  @$_POST['tel2'];

$from->tel3 =  @$_POST['tel3'];

$fromEmail = @$_POST['mailto'];


$from->day =  @$_POST['wedding1'];

$from->day2 =  @$_POST['wedding2'];

$from->day3 =  @$_POST['wedding3'];

$from->memo =  @$_POST['memo'];

$toEmail =   @$_POST['mailto']; // 받는 이 메일 주소

$subject =   @$_POST['subject']; // 제목

$toName =   @$_POST['toName']; // 받는이

$contype = @$_POST['contype']; // 접속기기 추가 *****************************


$body='<html><body><p style="font:normal bold 30px/1.2 Gulim; color: #006600; text-align: center;">' .$subject . '</p> 이름 :' . $fromName . '<br /> 메일 주소 : ' . $fromEmail . '<br /> 전화번호 : ' .$from->tel1 .'-'. $from->tel2 .'-'. $from->tel3 .'<br />결혼예정일 : ' . $from->day .'년' .$from->day2 . '월 ' .$from->day3 .'일 <br />메모 : ' .$from->memo .'<br />접속기기 : ' .$contype.'</body></html>'; // 메일내용

////// <br />접속기기 : ' .$contype.' 추가 *****************************


//echo $body;

//echo '<br />';

$encoded_subject="=?".$charset."?B?".base64_encode($subject)."?=\n"; // 인코딩된 제목

$to= "\"=?".$charset."?B?".base64_encode($toName)."?=\" <".$toEmail.">" ; // 인코딩된 받는이

$from= "\"=?".$charset."?B?".base64_encode($fromName)."?=\" <".$fromEmail.">" ; // 인코딩된 보내는이

$headers="MIME-Version: 1.0\n".

"Content-Type: text/html; charset=".$charset."; format=flowed\n".

"To: ". $to ."\n".

"From: ".$from."\n".

"Return-Path: ".$from."\n".

"Content-Transfer-Encoding: 8bit\n"; // 헤더 설정

$mail = mail ( $to , $encoded_subject , $body , $headers ); // 메일 보내기




//echo $mail;

echo json_encode($mail);

?>


이렇습니다. 


무엇이 문제일까요? ㅠㅠ

이 질문에 댓글 쓰기 :

답변 1

아래와 같이 직전/직후에 로그를 남겨보세요.


...

error_log(__FILE__ . ':' . __LINE__); // 직전 

error_log(print_r($_POST, true)); 

$mail = mail ( $to , $encoded_subject , $body , $headers ); // 실제 메일 전송 부분 

error_log(__FILE__ . ':' . __LINE__); // 직후

...


error_log 는 서버 설정에 따라 로그가 남겨지지 않을 수 도 있을 경우를 대비

간단하게 파일로 로그 남기는 함수 만들고 호출하셔도 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 126,624
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT