2012-07-17 4 views
0

stackoverflow에서 찾은 것들을 시도하는 데 많은 시간을 썼지 만, 내가 찾고있는 것을 찾을 수없는 것 같습니다.PHP는 전자 메일 양식 : '스팸'문제, 유효성 검사, 경고 상자

나는이 내가 일반적으로 관여하고있어 아니므로 PHP/자바 스크립트의 내 지식은 기본이라고 말할 것이다

내가있어 매우 간단한 문의 양식 :.

<form action=' ' method='post'> 

    <label for='firstName' >First Name: </label> 
    <input type='text' name='firstName' id='firstName' /> 

    <label for='lastName' >Last Name: </label> 
    <input type='text' name='lastName' id='lastName' /> 

    <label for='phone' >Contact No :</label> 
    <input type='text' name='phone' id='phone' /> 

    <label for='email' >Email Address:</label> 
    <input type='text' name='email' id='email' /> 

    <input type='image' id="submit" src="images/submit.png" class="uibutton" onclick="show_alert()" /> 

    </form> 

을 그리고 이것은 내 PHP입니다 :

<?php 

경우 ((는 isset $ _ POST [ '이메일'])) {

$field_name = $_POST['firstName']; 
$field_surname = $_POST['lastName']; 
$field_phone = $_POST['phone']; 
$reply_to = $_POST['email']; 


//send email 
$mail_to = '[email protected]'; 
$subject = 'Contact a site visitor '.$field_name." ".$field_surname; 

$body_message = 'First Name: '.$field_name."\n"; 
$body_message .= 'Last Name: '.$field_surname."\n"; 
$body_message .= 'Phone Number: '.$field_phone."\n"; 
$body_message .= 'Email Address: '.$reply_to; 

$headers = 'From: '.$field_name."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

} ?>

양식을 보내 주시면 이메일을 보내 드리겠습니다. 그것은 그렇게한다. 그러나 내가받는 이메일은 항상 '스팸'폴더에 저장됩니다. 도메인/IP가 PBL 목록에 없습니다.

내가 감사하겠습니다 사람이 적어도 방법을 다음과 답변을 몇 가지 질문을 달성하기 위해 나에게 방향을 제시 할 수있는 경우 : 폴더를 나는 '받은 편지함'으로 가서 이메일을 할

2. 양식의 유효성을 검사하고 싶지만 텍스트 필드 아래에 오류가 나타나기를 원합니다. Dreamweaver에서 제공하는 도구를 사용하여이 작업을 수행 할 수 있습니다. 그러나 그것은 여전히 ​​나를 빈 양식을 제출하게합니다. 미적 방법으로 오류를 표시하는 PHP/HTML/CSS를 사용할 수있는 방법이 있습니까? (같은 페이지에서 각 텍스트 필드 아래에)

3. '제출'나는 '감사합니다'라는 경고 상자가 있습니다. 양식이 올바르게 입력 된 경우에만 경고 상자 팝업을 만들 수 있습니까?

나는 '적절한'답변에 대해 정말로 감사 할 것입니다 ('가서 PHP/자바 스크립트 자습서'유형을 읽은 것입니다. 해봤지만, 시도하지 않았습니다. 조언)

감사합니다 :)이 경우

+0

당신은 아마 별도로 – MrGlass

+0

는 '스팸'된 이메일의 헤더를 확인하는 각각의 질문을 게시해야 - 스팸 필터가 트리거 왜 정확히 말할 수 일반적으로 스팸 필터 점수 정보가있다. 그 외에는 PHP mail() 함수를 사용하지 마십시오. 좋은 하루에 간신히 일하는 아주 기본적인 쓰레기입니다. PHPMailer 나 Swiftmailer와 같은보다 완벽한 기능을 갖춘 메일러를 사용하십시오. –

+0

더 나은 것부터 형식화하는 것이 좋습니다. "From : $ field_name <$reply_to> \ r \ n"이어야합니다. 스팸 필터를 유발할 수 있습니다. – aynber

답변

2
  1. 은 당신의 이메일에 가고, 당신이 연락처에 주소에서 추가합니다. 스팸 필터를 무시합니다.

  2. 필드를 필요로하는 경우 html5 form validation을 사용할 수 있습니다. 또한 유효한 전자 메일 주소를 확인하는 데 사용할 수 있습니다.

  3. <form> 태그의 onclick=""에서 onsubmit=""으로 자바 스크립트를 이동하십시오.

+0

+1) : 3) 또는 addEventListener/attachEvent를 사용하십시오. –

관련 문제