php sending HTML emails

Associate
Joined
23 Mar 2005
Posts
969
Location
Colchester, Essex
Ok, I'm trying to send an HTML email.. So far I have this...

Code:
	//add From: header 
	$headers = "From: Email App <[email protected]>\r\n"; 

	//specify MIME version 1.0 
	$headers .= "MIME-Version: 1.0\r\n"; 

	//unique boundary 
	$boundary = uniqid("HTMLDEMO"); 

	//tell e-mail client this e-mail contains//alternate versions 
	$headers .= "Content-Type: multipart/alternative; boundary = $boundary\r\n\r\n"; 

	//message to people with clients who don't 
	//understand MIME 
	$headers .= "This is a MIME encoded message.\r\n\r\n"; 

	//plain text version of message 
	$headers .= "--$boundary\r\n" . 
	   "Content-Type: text/plain; charset=ISO-8859-1\r\n" . 
	   "Content-Transfer-Encoding: base64\r\n\r\n"; 
	$headers .= chunk_split(base64_encode("This is the plain text version!")); 

	//HTML version of message 
	$headers .= "--$boundary\r\n" . 
	   "Content-Type: text/html; charset=ISO-8859-1\r\n" . 
	   "Content-Transfer-Encoding: base64\r\n\r\n"; 
	$headers .= chunk_split(base64_encode("This the <b>HTML</b> version!")); 

	mail("[email protected]", "An HTML Message", "", $headers);

For some reason the HTML works in most email readers (horde/outlook/thunderbird) however, googlemail is letting me down. (I can't have that obv).

I know googlemail accepts html emails, and comparing the headers I still can't find the difference??

Any ideas?
 
heh, didn't know you could send the entire email in the $headers parameter! learn something new every day! etc!

i notice a couple differences with how i send multiparts...

firstly i have boundary="blah" using double quotes, and on a line below the multipart/alternative; bit
i also have my charset="blah" using double quotes and on newlines

seem like minor differences, but worth a try?
 
Yeah I went for the mailer class in the end and used the SMTP mail method.

God knows why the php was giving me issues.

Oh well!
 
Back
Top Bottom