2012-07-03 5 views
5

반환 바꿈을 제거합니다PHP 메일() 함수는 문자를 변경하고이 내가 가진 무엇

1'2 ’3"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25 

이 때문에 HTML로 문자를 변경합니다 : 나는 이메일을받을 때

$msg = "1'2 ’3"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25 "; 
mail("[email protected]","My subject",$msg); 

나는이 얻을 나는? 어떤 아이디어? 나는 $ msg에 저장된 내용을 포함하도록 수신 된 이메일이 필요합니다. 감사합니다.

또한 반송 휴식 시간을 제거했습니다. DB에 현장은 휴식이 같이 저장되어 반환이 :이 절름발이 예입니다

Hello $name 

welcome to $websitename 

thank you, management 

,하지만 당신이 볼 수있는이 빈 줄이있다. 이메일이 발송 될 때 그 반환 나누기 무시되고 그것의 모든 라인에 어떤 생각이 콘텐츠 맹 글링을 방지하기 위해 base64 인코딩 형식으로 내부의 메시지를 캡슐화해야

+2

당신이 메일 헤더의 내용 유형 및 인코딩 설정을 시도 해 봤나? – Andrew

+0

아니요 헤더에 인코딩을 설정하지 않았습니다. – cppit

+0

수드 르의 대답이 당신을 위해 일해야합니다. 엔코딩 문제는 지난 몇 주 동안 몇 가지 프로젝트에서 나를 괴롭 히고 있었기 때문에 인코딩에 대해 처음으로 생각했습니다. 행운을 빕니다! – Andrew

답변

4

보십시오 추가 헤더 :

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
mail($to, $subject, $message, $headers); 

여기를 참조하십시오 : PHP mail()

+0

복귀 휴식에 대한 아이디어가 있습니까? – cppit

2

을하시기 바랍니다 :

$msg = "1'2 ’3\"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20\"21:22?23>24<25"; 

$body = chunk_split(base64_encode($msg)); 

mail("[email protected]", "My subject", $body, "Content-Transfer-Encoding: base64"); 

방법 줄 바꿈이 처리됩니다 다른 메일 클라이언트마다 다릅니다. 예를 들어, Outlook은 줄 바꿈을 잘하는 것으로 알려져 있지만 복원 할 수있는 방법도 제공합니다.

완전한 제어를 위해 HTML 메일 대신 텍스트 모드 폴백을 선택적으로 사용해야합니다. 같은

+0

복귀 휴식에 대한 아이디어가 있으십니까? – cppit

+0

@fogsy 메일 클라이언트에 따라 다릅니다. Outlook은 개보수를 스쿼시하는 것으로 알려져 있지만 복원 할 수있는 옵션이 있습니다. 완전한 제어를 원하면 HTML 전자 메일을 보내야합니다. –

+0

은 이메일 클라이언트와 관련이 없으며 gmail에서 이메일을 수신하고 돌아 오는 휴식 시간이 끝났습니다 – cppit