2011-01-06 4 views
0

하나의 사소한 사실을 제외하면 잘 작동하는 PHP 메일 스크립트가 있습니다. Outlook (모든 버전)에서 전자 메일은 gibrish로 제공됩니다. 전자 메일이 인터넷 브라우저 (예 : Gmail.com)를 통해 읽혀지면 괜찮습니다. 이메일을 Outlook에서도 잘 보이게 할 수 있습니까? HTML로 전자 메일로 보내려고했으나 여전히 유용하지 않았습니다.forgein languages에서 PHP로 메일 보내기

필요하다면 나는 전체 코드를 게시 할 수 있지만,이 같은 :

이러한 헤더는 다음과 같습니다

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

:

$email = $_REQUEST['email']; 
$headers = 'From: ' . $email . "\r\n" . 
      'Reply-To: ' . $email . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
$headers .= "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-Type: Text/plain; charset=ISO-8859-8"; 

은 메일() 함수를 사용하여 나는 어쩌면 들어오는 Outlook 메시지를 다르게 인코딩하는 방법을 찾으려고 노력했지만, (1) 그렇게 할 수있는 방법을 찾지 못했고 (2) 많은 사람들에게가는 것이기 때문에 (2) 이렇게하는 것이 좋을 것입니다. .

편집 : 아래 줄을 추가하면 메시지가 Outlook과 브라우저 모두에서 올바르게 렌더링됩니다. 희망이 사람을 돕는다!

//convert to utf-8 
$message = mb_convert_encoding($message , 'ISO-8859-8' , 'utf-8'); 

고마워요! 미트

+0

당신은 히브리어로 일한다고 생각합니까? 그것은 그것이 브라우저에서 작동한다는 것을 확인한 이후로 특히 PHP가 아니라 Outlook의 문제인 것처럼 들립니다. 아마도 그것은 Windows 및/또는 Outlook과 관련이 있습니다. – Moshe

+0

@Moshe : 예, 히브리어이며 Outlook 렌더링 문제입니다. 비록 PHP 인코딩으로 해결할 수 있었지만, 해결책을 위해 편집을 참조하십시오. – Amit

+0

ㅎ, 잘했는지 확인해보십시오. 인코딩을 알았지 만 당신이 무엇을하고 있는지 알았습니다. – Moshe

답변

3

이 꽤 쉽게 변경해야 charset=ISO-8859-8 또한

작성 사용 페이지는 데이터베이스가 사용되는 경우, 테이블 (또는 전체 DB가) UTF-8 unicode general

에 있음을 UTF-8로 인코딩되어 있는지 확인 charset=UTF-8

UTF-8으로 문자를 쓸 수는 있지만 엔티티는 사용하지 마십시오.

+0

이것이 작동 할 것으로 판단됩니다. 해결책을 찾는 데는 꽤 시간이 걸렸으므로 문제의 EDIT 섹션 아래에 나를 위해 일한 것을 게시했습니다. 귀하의 의견을 보내 주셔서 감사합니다 – Amit

+0

@ rad, –