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

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

QA

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

답변 1

본문

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

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

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


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


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 는 서버 설정에 따라 로그가 남겨지지 않을 수 도 있을 경우를 대비

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로