Huy,
how to build mails in PHP with txt-mails AND HTML-mails AND visible in Webmail (like
Hotmail, USANet)
With the class below I can only make HTML-mails readable in Outlook etc.
Why are the mails not shown in USANet?
Daniel Kieviet
Xsarus Internetservices
Holland
[EMAIL PROTECTED]
http://www.xsarus.nl
-
Class:
?php
class html_mime_mail{
var $headers;
var $body;
var $multipart;
var $mime;
var $html;
var $html_text;
var $html_images = array();
var $cids = array();
var $do_html;
var $parts = array();
/***
** Constructor function. Sets the headers
** if supplied.
***/
function html_mime_mail($headers = ''){
$this-headers = $headers;
}
/***
** Adds a html part to the mail.
** Also replaces image names with
** content-id's.
***/
function add_html($html, $text){
$this-do_html = 1;
$this-html = $html;
$this-html_text = $text;
if(is_array($this-html_images) AND count($this-html_images) 0){
for($i=0; $icount($this-html_images); $i++){
$this-html =
ereg_replace($this-html_images[$i]['name'], 'cid:'.$this-html_images[$i]['cid'],
$this-html);
}
}
}
/***
** Builds html part of email.
***/
function build_html($orig_boundary){
$sec_boundary = '=_'.md5(uniqid(time()));
$thr_boundary = '=_'.md5(uniqid(time()));
if(!is_array($this-html_images)){
$this-multipart.= '--'.$orig_boundary."\n";
$this-multipart.= 'Content-Type: multipart/alternative;
boundary = "'.$sec_boundary."\"\n\n\n";
$this-multipart.= '--'.$sec_boundary."\n";
$this-multipart.= 'Content-Type: text/plain'."\n";
$this-multipart.= 'Content-Transfer-Encoding: 7bit'."\n\n";
$this-multipart.= $this-html_text."\n\n";
$this-multipart.= '--'.$sec_boundary."\n";
$this-multipart.= 'Content-Type: text/html'."\n";
$this-multipart.= 'Content-Transfer-Encoding: 7bit'."\n\n";
$this-multipart.= $this-html."\n\n";
$this-multipart.= '--'.$sec_boundary."--\n\n";
}else{
$this-multipart.= '--'.$orig_boundary."\n";
$this-multipart.= 'Content-Type: multipart/related; boundary
= "'.$sec_boundary."\"\n\n\n";
$this-multipart.= '--'.$sec_boundary."\n";
$this-multipart.= 'Content-Type: multipart/alternative;
boundary = "'.$thr_boundary."\"\n\n\n";
$this-multipart.= '--'.$thr_boundary."\n";
$this-multipart.= 'Content-Type: text/plain'."\n";
$this-multipart.= 'Content-Transfer-Encoding: 7bit'."\n\n";
$this-multipart.= $this-html_text."\n\n";
$this-multipart.= '--'.$thr_boundary."\n";
$this-multipart.= 'Content-Type: text/html'."\n";
$this-multipart.= 'Content-Transfer-Encoding: 7bit'."\n\n";
$this-multipart.= $this-html."\n\n";
$this-multipart.= '--'.$thr_boundary."--\n\n";
for($i=0; $icount($this-html_images); $i++){
$this-multipart.= '--'.$sec_boundary."\n";
$this-build_html_image($i);
}
$this-multipart.= "--".$sec_boundary."--\n\n";
}
}
/***
** Adds an image to the list of embedded
** images.
***/
function add_html_image($file, $name = '', $c_type='application/octet-stream'){
$this-html_images[] = array( 'body' = $file,
'name' = $name,
'c_type' = $c_type,
'cid' = md5(uniqid(time())) );
}
/***
** Adds a file to the list of attachments.
***/
function add_attachment($file, $name = '', $c_type='application/octet-stream'){
$this-parts[] = array( 'body' = $file,
'name' = $name,
'c_type' =