Zend - The PHP Company




Email

Add Code


Another Sendmail  

Type: code fragment
Added by: hermawan
Entered: 10/01/2004
Last modified: 01/12/2003
Rating: ***** (17 votes)
Views: 23093
This is another sendmail script. Sends HTML and Text message. Add attached file as inline image or attachment.


<?php 
    
/********************************************* 
    * Publish On : Jan 10th, 2004                * 
    * Scripter   : Hermawan Haryanto             * 
    * Version    : 1.0                           * 
    * License    : GPL (General Public License)  * 
    **********************************************/ 

    
function sendmail ($from_name$from_email$to_name$to_email$subject$text_message=""$html_message$attachment=""
    { 
        
$from "$from_name <$from_email>"
        
$to   "$to_name <$to_email>"
        
$main_boundary "----=_NextPart_".md5(rand()); 
        
$text_boundary "----=_NextPart_".md5(rand()); 
        
$html_boundary "----=_NextPart_".md5(rand()); 
        
$headers  "From: $fromn"
        
$headers .= "Reply-To: $fromn"
        
$headers .= "X-Mailer: Hermawan Haryanto (http://hermawan.com)n"
        
$headers .= "MIME-Version: 1.0n"
        
$headers .= "Content-Type: multipart/mixed;ntboundary="$main_boundary"n"
        
$message .= "n--$main_boundaryn"
        
$message .= "Content-Type: multipart/alternative;ntboundary="$text_boundary"n"
        
$message .= "n--$text_boundaryn"
        
$message .= "Content-Type: text/plain; charset="ISO-8859-1"n"
        
$message .= "Content-Transfer-Encoding: 7bitnn"
        
$message .= ($text_message!="")?"$text_message":"Text portion of HTML Email"
        
$message .= "n--$text_boundaryn"
        
$message .= "Content-Type: multipart/related;ntboundary="$html_boundary"n"
        
$message .= "n--$html_boundaryn"
        
$message .= "Content-Type: text/html; charset="ISO-8859-1"n"
        
$message .= "Content-Transfer-Encoding: quoted-printablenn"
        
$message .= str_replace ("=""=3D"$html_message)."n"
        if (isset (
$attachment) && $attachment != "" && count ($attachment) >= 1
        { 
            for (
$i=0$i<count ($attachment); $i++) 
            { 
                
$attfile $attachment[$i]; 
                
$file_name basename ($attfile); 
                
$fp fopen ($attfile"r"); 
                
$fcontent ""
                while (!
feof ($fp)) 
                { 
                    
$fcontent .= fgets ($fp1024); 
                } 
                
$fcontent chunk_split (base64_encode($fcontent)); 
                @
fclose ($fp); 
                
$message .= "n--$html_boundaryn"
                
$message .= "Content-Type: application/octetstreamn"
                
$message .= "Content-Transfer-Encoding: base64n"
                
$message .= "Content-Disposition: inline; filename="$file_name"n"
                
$message .= "Content-ID: <$file_name>nn"
                
$message .= $fcontent
            } 
        } 
        
$message .= "n--$html_boundary--n"
        
$message .= "n--$text_boundary--n"
        
$message .= "n--$main_boundary--n"
        @
mail ($to$subject$message$headers); 
    } 
?>


Usage Example


<?php
    
# Example 
    # Sender Name 
    
$from_name  "Hermawan Haryanto"
    
# Sender Email 
    
$from_email "hermawan@codewalkers.com"
    
# Recipient Name 
    
$to_name    "Hermawan Haryanto"
    
# Recipient Email 
    
$to_email   "hermawan@devserv.int"
    
# Email Subject 
    
$subject    "Email with embeded images"
    
# Text Portion 
    
$text_message "This is HTML email and your email client softawre ain't support HTML email."
    
# HTML Portion 
    
$html_message "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">n"; 
    
$html_message.= "<html><head><title></title>n"
    
$html_message.= "<meta http-equiv="Content-Type" content="text/htmlcharset=iso-8859-1">n"
    
$html_message.= "<style type="text/css">n"
    
$html_message.= "body, td {nfont-family: Trebuchet MS;nfont-size: 12px;n}n"
    
$html_message.= "</style>n"
    
$html_message.= "</head>n"
    
$html_message.= "<body><table width="100%" cellpadding=0 cellspacing=0><tr valign=top align=center>"
    
$html_message.= "<td width=300>This is my HTML Bodyn<br>"
    
$html_message.= "<img src="cid:hh.jpg"><br>n"
    
$html_message.= "<font color=red>Hi everyone, this is my picture and family."
    
$html_message.= "</td>"
    
$html_message.= "</tr></table>"
    
$html_message.= "</body></html>"

    
# Attachment Location 
    
$attachment = array ("http://hermawan.com/images/hh.jpg"); 
    
# Execute SendMail Function 
    
sendmail ($from_name$from_email$to_name$to_email$subject$text_message$html_message$attachment);
?>


Rate This Script





Search



This Category All Categories