Send HTML/plain text email using PHP
| From: | Matt MacLeod | Date: | Fri, 28 May 2004 10:49:32 +0000 |
| Subject: | Send HTML/plain text email using PHP | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-187107@lists.php.net to get a copy of this message | ||
I've been having a little trouble configuring a script to send a multipart email using PHP.
The script send the message, but when I recieve the email it doesn't display the HTML version and I have to tell my mail client to displlay the plain text version (Mail on OS X 10.3.3).
Here's the script:
$headers .= "FROM: vinciane@london21.org\n";
$headers .= "Reply-To: vinciane@london21.org\n";
$nonhtml = strip_tags($emailsend);
// This is the important part!
// This content type identifies the content of the message.
// The boundary delimits the plain text and html sections.
// The value of the boundary can be anything - you can even use the same one we used here
$headers .= "Content-Type: multipart/alternative; boundary=\"----=_NextPart_000_002C_01BFABBF.4A7D6BA0\"\n\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: PHP/" . phpversion()."\r\n";
$headers .= "X-Sender: vinciane@london21.org\r\n";
$headers .= "Return-Path: vinciane@london21.org\r\n";
// Now begin your message, starting with the delimiter we specified in the boundary
// Notice that two extra dashes (--) are added to the delimiters when
// They are actually being used.
$message = '------=_NextPart_000_002C_01BFABBF.4A7D6BA0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
';
$message .= $nonhtml;
$message .='
';
// Now begin your HTML message, starting with the delimiter
// Also notice that we add another content-type line which
// lets the mail client know to render it in HTML
$message .= '------=_NextPart_000_002C_01BFABBF.4A7D6BA0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
';
$message .= $emailsend.'
------=_NextPart_000_002C_01BFABBF.4A7D6BA0--';
// Now send the mail.
// The additional header, "-f vinciane@london21.org" is only required by
// some configurations.
echo $message;
$v = 'matt@bigbarn.co.uk';
mail($v, "Test", $message ,$headers,"-f vinciane@london21.org");
Any ideas would be gratefully received!
Thanks,
Matt