Return to Snippet

Revision: 17357
at September 1, 2009 22:22 by iTony

Initial Code
EXAMPLE: htmlmail('[email protected]', 'Look ma, HTML e-mails','You just got <a href="">Rick Rolled</a>');
NOTE: $headers is optional, but can be used to set From, CC, etc. Go to for info

function htmlmail($to, $subject, $message, $headers = NULL)
	$mime_boundary = md5(time()); 

	$headers .= "\nMessage-ID: <" . time() . " [email protected]{$_SERVER['SERVER_NAME']}>\n";
	$headers .= "X-Mailer: PHP " . phpversion() . "\n";
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-Type: multipart/alternative;boundary={$mime_boundary}\n\n";

	$newmessage = "This is a multi-part message in MIME format.";
	$newmessage .= "\n\n--{$mime_boundary}\n";
	$newmessage .= "Content-type: text/plain;charset=utf-8\n\n";
	$newmessage .= strip_tags(str_replace(array('<br>', '<br />'), "\n", $message)) . "\n\n";

	$newmessage .= "\n\n--{$mime_boundary}\n";
	$newmessage .= "Content-type: text/html;charset=utf-8\n\n";

	// prepended HTML
	$newmessage .= '<body style="margin:0"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"><tr><td bgcolor="#ffffff" valign="top"><table width="750" border="0" cellpadding="0" cellspacing="0" align="center"><tr><td bgcolor="#ffffff" width="750">';

	// HTML message that was passed to this function
	$newmessage .= $message;

	// appended HTML
	$newmessage .= '</td></tr></table></td></tr></table></body>';

	return mail($to, $subject, $newmessage, $headers);

Initial URL

Initial Description

Initial Title
Sending HTML emails in PHP

Initial Tags
email, php, html

Initial Language