2013-07-15 4 views
0

메일 기능에서 $ headers를 제거하면 $ html 코드가 테이블에 표시되지 않고 메일에 포함되어 $ message가 보내지지만 메일 기능에 $ headers를 포함하면 메일이 전송되지 않습니다 .it doesnt는 어떤 오류라도 보여줍니다. 내 코드가 있습니다. 웹 서버에서 작업 중입니다.PHP 메일 기능이 작동하지 않습니다

<?php 

    //Deal with the email 

    if(isset($_POST['submit'])) 
    { 


    $to = '[email protected]'; 
      $title = 'New Enquiry || example.com'; 

    $subject = $_POST['subject']; 
      $message = $_POST['message']; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 

    } 

    $headers .= "From: " . strip_tags($email) . "\r\n"; 
    $headers .= 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 


    $msg = '<html><head><body><b>'.$title.'</b> 

      <br> 

      <table bgcolor=#CCCCCC> 
      <tr> 
      <td> Subject : </td> 
      <td> '.$subject.'</td></tr>' 

      .'<tr> <td> Contact person: </td><td>'.$name.'</td></tr>' 
      .'<tr> <td> E-mail:</td><td> '.$email.'</td></tr>' 
      .'<tr><td> Message : </td><td>'.$message.' </td></tr></table></body></head></html>'; 


    mail($to, $title, $subject, $msg, $headers); 

    header("refresh:1;url=contact-us-ok.html");   


?> 
+0

@DanyCaissy 그렇다면'$ headers'가 없으면 왜 작동할까요? – Barmar

+0

HTML 중첩이 잘못되었습니다. ' '안에는' '을 사용할 수 없습니다. – Barmar

+0

그것을 지적 해 주신 고마움 남자. $ 헤더가없는 이유는 모르겠지만 $ 헤더는 선택 사항이라고 읽었습니다. – 8bitrebellion

답변

0

메일 기능이 정의는 $ 타이틀 변수 때를 보내고있는 것 같습니다

mail($to, $title, $subject, $msg, $headers); 

해서는 안됩니다.

+0

ok $ title variable.and bool을 메일 앞에 삽입했지만 Dreamweaver에 구문 오류가 있음을 보여줍니다. – 8bitrebellion

+0

답장을 보내 주셔서 감사 드리며 함수에서 $ title을 (를) 제거하고 HTML 코드에서 을 (를) 제거하여 문제를 해결하십시오. – 8bitrebellion

1

mail()에 대한 귀하의 명령 순서가 잘못되었습니다. 다음과 같아야합니다.

mail($to, $subject, $msg, $headers); 

"제목"에 대한 인수가 없습니다.

부울 메일 (에 문자열 $ 문자열 $ 제목, 문자열 $ 메시지 [문자열 $ additional_headers [문자열 $ additional_parameters]])

사이드 참고 : Manual에서

:

  • strip_tags()은 헤더 주입을 방지하기에 충분하지 않습니다. 사용자 입력 대신에 From 주소에 대해 자신의 하드 코딩 된 전자 메일을 사용하는 것이 좋습니다. 그렇지 않으면 일관성없는 스팸 필터 결과가 발생할 수 있고 분명히 주입 취약점을 방지하기위한 몇 가지 유효성 검사를 구현해야하기 때문입니다. 당신이 보내는 http://php.net/manual/en/function.mail.php

    :

    bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 
    

    에서 다음과 같이

+0

안녕하세요, 나는 메일 앞에 bool을 삽입했지만 Dreamweaver에 구문 오류가 있음을 보여줍니다. – 8bitrebellion

+0

답장을 보내 주셔서 감사 드리며 함수에서 $ title을 (를) 제거하고 HTML 코드에서 을 (를) 제거하여 문제를 해결하십시오. – 8bitrebellion

관련 문제