2016-10-26 10 views
-1

메시지가 한 줄로 오는 이유는 무엇입니까? 내가 추가 한 후 $headers 내 메시지가 한 줄로 시작되었습니다.줄 바꿈이 작동하지 않습니다.

놈 : 페드로 Assunto :

<?php 

// your email 
$user_email = "[email protected]"; 

$mail = array(
    "name" => htmlspecialchars($_POST['cf_name']), 
    "email" => htmlspecialchars($_POST['cf_email']), 
    "subject" => htmlspecialchars($_POST['cf_subject']), 
    "assunto" => 'Novo contato realizado via website',  
    "message" => htmlspecialchars($_POST['cf_message']) 
); 

$nome = $_POST['cf_name']; 
$email = $_POST['cf_email']; 
$assunto = $_POST['cf_subject']; 
$assunto_mensagem = 'Novo contato realizado via website'; 
$mensagem = $_POST['cf_message']; 

$assunto = 'Novo contato realizado a partir do site Font Life'; 

$headers = "MIME-Version: 1.1\r\n". 
       "Content-type: text/html; charset=utf-8\n". 
       "Content-Transfer-Encoding: 8bit\n". 
       "From: ". $_POST['cf_name'] ." <". $_POST['cf_email'] .">\n". 
       "Reply-to: ". $_POST['cf_name'] ." <". $_POST['cf_email'] .">\n". 
       "Date: ". date("r"). "\n"; 

function validate($arr){ 

    return !empty($arr['name']) && strlen($arr['message']) > 20 && filter_var($arr['email'],FILTER_VALIDATE_EMAIL); 

} 

if(validate($mail)){ 

    echo mail($user_email, $mail['assunto'], 
     "Nome : $nome\n" 
     ."Assunto : $assunto\n" 
     ."E-mail : $email\n" 
     ."Mensagem : $mensagem\n", 
     $headers 
    ); 

} 

?> 

메시지는 다음과 같이오고있다 노보는 contato realizado partir 사이트 글꼴 생명의 E-mail을 수행 [email protected] Mensagem : asdklnasklasdmklasdmasdçlasd을

을 mçasd

내 코드에 오류가 있습니까?

+0

헤더에 일반 텍스트가 아닌 HTML을 보내므로 코드가 필요합니다. 메일 매뉴얼을 읽으십시오. http://php.net/manual/en/function.mail.php 또는 phpmailer를 사용하십시오. –

답변

2
  1. 머리글을 \r\n (및 \n)으로 분할해야합니다.
  2. 콘텐츠 부분은 html이어야합니다. 콘텐츠에서 줄 바꿈을 위해 <br>을 사용해야합니다.

    $headers = "MIME-Version: 1.1\r\n". 
          "Content-type: text/html; charset=utf-8\r\n". 
          "Content-Transfer-Encoding: 8bit\r\n". 
          "From: ". $_POST['cf_name'] ." <". $_POST['cf_email'] .">\r\n". 
          "Reply-to: ". $_POST['cf_name'] ." <". $_POST['cf_email'] .">\r\n". 
          "Date: ". date("r"); 
    

    이이 메일 함수 호출입니다 :


이 헤더 부분입니다

mail($user_email, $mail['assunto'], 
    "Nome : $nome<br />\n". 
    "Assunto : $assunto<br />\n". 
    "E-mail : $email<br />\n". 
    "Mensagem : $mensagem<br />\n", 
    $headers 
); 
+0

예,'
'이 줄을 끊어야합니다. 헤더 앞에 내용이 나타나지 않아야합니다. - mail()에는 헤더에 대한 매개 변수가 있습니다. http://php.net/manual/en/function .mail.php – Steve

+0

@ 스티브, 답변을 업데이트했습니다. 메모를 보내 주셔서 감사합니다. – Dekel

+0

고마워요. 이메일 본문에'\ n'이 필요하다고 생각했는데, 방금'
'을 추가했습니다. –

1

는 아마 일을 사용!

 echo mail($user_email, $mail['assunto'], 
      "Nome : $nome". <br><br>" 
      . "Assunto : $assunto"." <br><br>" 
      ."E-mail : $email"."<br> <br>" 
      ."Mensagem : $mensagem" 
      ."<br><br> ", 
      $headers 
); 
관련 문제