2011-05-12 2 views
1

그래서 내 웹 사이트에 등록 이메일을 보내고 싶습니다. 그러나 필요할 때 좋은 옛날 일반 텍스트로 돌아가는 동안 멋지게 보이게하고 싶습니다. 혼합 된 메시지 이메일.PHP mail() 특정 질문

그러나 이메일이 [email protected]에서 [email protected] 인 John Doe에게 보내고 싶습니다.

HTML 코드 <html><head><title>HTML email!</title></head><body><p>This is HTML!</p></body</html>해야하며 일반 텍스트 메시지는 This is plaintext.

은 무엇 이러한 목표를 달성하기 위해 mail()에 인수 될해야 하는가? 나는 그것의 많은 것이 미친 방법으로 헤더를 바꾸는 것을 다룬다는 것을 안다.

감사합니다.

+1

http://stackoverflow.com/questions/4897215/php-mail-how-to-send-html에서 Content-Type을'multipart/alternative'로 설정하십시오. - 또는 보내시는 * 관련 * 링크를보십시오. html 메일은 맨손의'mail()'함수로 수동으로하지 않는 것이 좋습니다. – mario

답변

2

사용 무언가가 헤더 주입 방지 등의 좋은 일이 있기 때문에, 대신 SwiftMailer있다.

/*************************************************************** 
Creating Email: Headers, BODY 
1- HTML Email WIthout Attachment!! <<-------- H T M L --------- 
***************************************************************/ 
#---->Headers Part 
$Headers  =<<<AKAM 
From: $FromName <$FromEmail> 
Reply-To: $FromEmail 
MIME-Version: 1.0 
Content-Type: multipart/alternative; 
    boundary="$boundary1" 
AKAM; 

#---->BODY Part 
$Body  =<<<AKAM 
MIME-Version: 1.0 
Content-Type: multipart/alternative; 
    boundary="$boundary1" 

This is a multi-part message in MIME format. 

--$boundary1 
Content-Type: text/plain; 
    charset="windows-1256" 
Content-Transfer-Encoding: quoted-printable 

$TextMessage 
--$boundary1 
Content-Type: text/html; 
    charset="windows-1256" 
Content-Transfer-Encoding: quoted-printable 

$HTMLMessage 

--$boundary1-- 
AKAM; 

출처 : http://www.php.net/manual/en/function.mail.php#83491

이 많은 작업이를 염두에두고, 그래, 당신은 사용자 정의 헤더를 설정하고 당신이 원하는 것을 달성하기 위해 여러 부분으로 몸을 사용해야합니다. 다시 한번,이 모든 것을 처리 할 수있는 라이브러리와 다른 기능을 함께 제공하는 것이 좋습니다.

+0

이것이 SwiftMailer를위한 최고의 광고 *라고 생각합니다. SwiftMailer API의 간단한 awesomeness에 자신의 MIME 본문을 조립하는 끔찍한 과정을 비교하십시오. – Charles