2013-06-17 5 views
0

메일을 보내려면 파일을 만들어야합니다.메일 보내기 php

첫 번째 것은 html 파일입니다.

mailhtml.php

<form action="mailsend.php" method="post"> 
    <label for="name">Name:</label> 
    <input type="text" name="name" id="name" /> 

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

    <label for="Message">Message:</label><br /> 
    <textarea name="message" rows="20" cols="20" id="message"></textarea> 

    <input type="submit" name="submit" value="Submit" /> 
</form> 

둘째 성공적으로 mailsend.php

<?php 
     try{ 
     $name = trim(strip_tags($_POST['name'])); 
     $email = trim(strip_tags($_POST['email'])); 
     $message = htmlentities($_POST['message']); 

     // set here 
     $subject = "Contact form submitted!"; 
     $to = '[email protected]'; 

     $body = <<<HTML 
$message 
HTML; 

     $headers = "From: $email\r\n"; 
     $headers .= "Content-type: text/html\r\n"; 

     // send the email 
     if(mail($to, $subject, $body, $headers)) 
     { 
      echo "success"; 
     } 
     else 
     { 
     echo "Not Success"; 
     } 
     } 
     catch (Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "\n"; 
} 
?> 

메일 전송을하지만 내 HTML 데이터는 메일에서 렌더링되지 않습니다. 그것은 내가 텍스트 상자에 삽입과 같은 모양입니다. 이미지보기. 우편으로 받았습니다. enter image description here

+0

자신의 마임 이메일을 구축하지 마십시오 (예 : <&lt;가된다), htmlentities($_POST['message']을 사용하고 있습니다. 대신 PHPMailer 또는 Swiftmailer를 사용하십시오. 그들은 당신을 훨씬 쉽게 해줄 것입니다. –

+3

왜냐하면'htmlentities ($ _ POST [ 'message']);' – amigura

답변

1

메시지와 관련된 사운드의 형식이 잘못되었습니다. 확인 당신이 문서 타입과 태그를 포함해야합니다

<!DOCTYPE HTML> 
<html> 
your message here 
</html> 
0

닉 말한 것처럼, DOCTYPE과 다른 태그를 추가해야하지만, 또한 당신의 htmlentities($_POST['message'])htmlentities 당으로 &lt;&gt;

에 <와>로 변환한다 PHP 문서에서.

2

이 양식을 사용하면 잠재적 인 공격자가 귀하의 사이트를 사용하여 다른 사람들을 스팸화할 수 있습니다. $ _POST 값을 적절히 삭제하지 않으면 태그 만 제거하므로 사용자 정의 헤더를 추가 할 수 있습니다. exemple 들어

, 내가

$_POST['email'] = "[email protected]\r\nCC: [email protected], [email protected], [email protected], ... 

와 양식에 게시한다면 나는 당신의 서버를 사용하는 사용자의 목록이 대량 스팸 메일을 수있을 것입니다.

메일 헤더에 사용하기 전에 수신 한 값에서 새 줄 (\n)과 캐리지 리턴 (\r)을 제거해야합니다. 당신이 보내는 메시지가 모든 IT의 HTML 태그 요소를 텍스트로 변환이 귀하의 실제 인코딩 문제에 관해서는

, 당신은