php
  • email
  • email-headers
  • 2012-02-01 2 views 0 likes 
    0

    연락처 양식을 작성 중입니다. 양식 정보를 수집하고 내 개인 이메일로 내 사이트에서 전자 메일을 전송하는 초보자 용 버전을 얻었지만 '추가 헤더'를 사용할 수없는 것으로 보입니다. 나는 다음과 같은 헤더가 있다면 그것은 잘 작동 :메일 헤더가 실패합니다.

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

    을하지만 시도와 같은 추가 메일 헤더를 추가하는 경우 :

    $headers .= 'To: Jack <Jack Johnson>' . "\r\n"; 
    $headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n"; 
    $headers .= 'Cc: [email protected]' . "\r\n"; 
    $headers .= 'Bcc: [email protected]' . "\r\n"; 
    $headers .= "\r\nX-Mailer: PHP/" ; 
    

    나는이 메일 기능에 '실패'얻을. PHP 버전 5.3.8을 사용하고 있습니다. 메일 기능이 작동하는지 확인하려면 다음을 수행하십시오.

    $sendmail = mail($email_to, $email_subject, $email_message, $headers); 
    
        if ($sendmail) { 
         echo '<div>Thanks for submitting!</div>'; 
        } else { 
         echo '<div>Fail</div>'; 
        } 
    

    이 형식을 잘못 지정 했습니까?

    +0

    당신은 '받는 사람'헤더를 설정할 필요가 없습니다 숨은 참조받는 사람에게 보낼 별도로 메일() 함수를 호출해야합니다 메일을 보낼 때'mail()'함수에 별도의 인수가 있기 때문에 –

    +1

    클라이언트에게 메시지 본문의 시작을 나타내는'X-Mailer' 전에 추가 라인 브레이크가 있습니다. 그렇다고해서'mail()'호출이 실패하지는 않을 것이다. 몇 가지 이전 답변을 수락하십시오! –

    +0

    To : 헤더와 위와 같이 오류가있는 새 줄을 제거한 다음 헤더의 순서를 변경하여 MIME 및 내용 유형이 끝에 오도록하고 최종 최종 헤더 인 'Content-Transfer-Encoding : 8bit'을 추가하십시오. "\ r \ n \ r \ n "; 그 후에 (두 배의 새로운 라인을 주목). –

    답변

    1
    $headers .= 'To: Jack <Jack Johnson>' . "\r\n"; 
    

    의견에서 언급했듯이, 거기에있을 필요는 없습니다. 이 이메일 주소 코멘트에 언급 한 바와 같이 또한

    포함되어 있지 않기 때문에 그러나 그것은 거의 확실하게, 마지막으로

    $headers .= "\r\nX-Mailer: PHP/" ; 
    

    의 시작을 포함하여, 당신은 이중 \r\n이이 문제의 원인이됩니다 문제가 발생해서는 안되지만 실제로는 안됩니다 :

    $headers .= 'Bcc: [email protected]' . "\r\n"; 
    

    숨은 참조 란은 헤더에 속하지 않습니다. BCC의 요점을 훼손하는 모든 수신자의 헤더에 나타납니다. 다른 메일 클라이언트 및 서비스에서 간헐적으로 처리되는 것을 알 수 있습니다. 어떤 사람들은 그것을 보여줄 것이고, 어떤 사람들은 그것을 지키고, 어떤 사람들은 "친절하게"그것을 헤더에서 숨길 것입니다.

    PHP의 메일() 정말 숨은 참조를 처리하도록 설계되지 않았습니다, 그래서 당신은 아마

    관련 문제