2011-12-11 3 views
0

내 양식이 내게 이메일을 보내도록하려는 나의 업데이트 된 코드가 있습니다. 코드를 읽지 않는 것 같지만 폼 주위에 서버 PHP 요청을 추가했습니다. 내 코드는 테스트를 위해 푸시 한 후 사이트의 텍스트로 표시됩니다. 한번 기억 하건데, 폼 마크 업과는 달리 php를 호출했지만 구문을 기억할 수는 없습니다. 여기내 문의 양식을 만드는 방법 이메일을 보내십시오

코드는 내가 사용하려고 해요 것 :

<?php 
if ($_POST["email"]<>'') { 
    $ToEmail = '[email protected]'; 
    $EmailSubject = 'Site contact form '; 
    $mailheader = "From: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
    $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
    $MESSAGE_BODY .= "URL: ".$_POST["url"]."<br>"; 
    $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
Your message was sent 
<?php 
} else { 
?> 

    <p style="font-style:italic; font-size:12px; font-weigh: normal; margin-top: -89px;  margin-left: 33px;">Contact me written in a different language.</p> <img src="http://www.cameroncashwell.com/imgs/pointing-left.png" style="float: right; margin-right: 140px; margin-top: -89px;"> 

<div class="form-div"> 
    <form id="fvujq-form1" style="font-size:22px; color:#333;" method="post" action=""> 
     <div class="form-row"><span class="label">Name *</span><input type="text" name="name" /></div> 
     <div class="form-row"><span class="label">Email *</span><input type="text" name="email" /></div> 
     <div class="form-row"><span class="label">URL</span><input type="text" name="url" /></div> 
     <div class="form-row"><span class="label">Comment *</span><textarea name="comment"></textarea></div> 
     <div class="form-row"><input class="submit" type="submit" value="Submit"></div> 
    </form> 
</div> 
    <?php 
}; 
?> 

알의 내 오류를?

+0

코드에서 'process_the_validated_fields_and_send_email.php'에 대한 호출이 보이지 않습니다.이 태그를 form 태그의 action 속성에 넣거나 유효성 검사 js에서 호출 할 수도 있습니다. – ptriek

+0

또는 내 이전 의견을 확장 : 입력을 처리하고 실제로 이메일을 보내는 PHP 코드는 어디입니까? 같은 파일에 있습니까 (이 경우 action = "")? 아니면 다른 PHP 파일입니까? 이 경우 action = "different_php_file.php" – ptriek

+0

[특정 메일 주소에 지정된 정보를 보낼 양식 만들기]가 필요합니다 (http://stackoverflow.com/questions/8465007/creating-a). -form-the-sent-the-specific-specific-specific-specific-mail-adre) – Quentin

답변

3

이메일은 클라이언트의 JavaScript 코드에 의해 전송되지 않습니다. 서버에서 전송됩니다. 사용자가 제출을 클릭하고 모든 클라이언트 측 유효성 검사가 통과되면 양식 데이터가 서버에 POST됩니다. 양식 요소의 "action"속성은 POST'ed 양식 데이터를 수신해야하는 서버의 URL을 지정합니다. 즉 action = "send_email.php"또는 이와 비슷한 것입니다.

실제로 이메일이 서버에서 생성되는 방식은 사용중인 서버 기술에 전적으로 달려 있습니다. PHP 또는 JSP 또는 무엇이든간에. 데이터를받을 수있는 서버 측 코드 (PHP 파일, 또는 무엇이든) 형태로 =

  1. 행동의 값을, 그리고
  2. :

    그래서 두 가지 위의 코드에서 누락 실제로 여전히 당신을 보내는
0

그리고 @ smendola의 대답에 추가 할 ... 서버 측 이메일을 분류하면

(# 1에 해당하는) 이메일을 수 보내 기대하는 이메일을받지 못할 수도 있습니다. 일부 이메일 호스트 (실제로는 상당수)가 보내는 서버의 서명 유효성을 확인합니다. 실패한 경우 (서명이 없거나 자체 서명 된 서명 만있는 경우) 전자 메일 호스트는 전자 메일을 스팸으로 거부 할 수 있습니다.

이 문제를 피하는 한 가지 방법은 PHP의 기본 send() 함수가 아닌 SMTP를 통해 양식 데이터를 보내는 것입니다. 가장 쉬운 해결책은 PHPMAILER입니다. 예를 들어 Gmail account을 통해 콘텐츠를 보낼 수 있습니다.

관련 문제