Inspiration For Creative Minds
Home » Labs » PHP Email Script For Your Next Project  

Filed under Labs

Here is a simple PHP script which is useful in custom forms as well as Content Management System like WordPress (for Custom Template)

<?php 
 
    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: $from\n"; 
        $headers .= "Reply-To: $from\n"; 
        $headers .= "X-Mailer: Yellow\n"; 
        $headers .= "MIME-Version: 1.0\n"; 
        $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"$main_boundary\"\n"; 
        $message .= "\n--$main_boundary\n"; 
        $message .= "Content-Type: multipart/alternative;\n\tboundary=\"$text_boundary\"\n"; 
        $message .= "\n--$text_boundary\n"; 
        $message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n"; 
        $message .= "Content-Transfer-Encoding: 7bit\n\n"; 
        $message .= ($text_message!="")?"$text_message":"Text portion of HTML Email"; 
        $message .= "\n--$text_boundary\n"; 
        $message .= "Content-Type: multipart/related;\n\tboundary=\"$html_boundary\"\n"; 
        $message .= "\n--$html_boundary\n"; 
        $message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n"; 
        $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
        $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 ($fp, 1024); 
                } 
                $fcontent = chunk_split (base64_encode($fcontent)); 
                @fclose ($fp); 
                $message .= "\n--$html_boundary\n"; 
                $message .= "Content-Type: application/octetstream\n"; 
                $message .= "Content-Transfer-Encoding: base64\n"; 
                $message .= "Content-Disposition: inline; filename=\"$file_name\"\n"; 
                $message .= "Content-ID: <$file_name>\n\n"; 
                $message .= $fcontent; 
            } 
        } 
        $message .= "\n--$html_boundary--\n"; 
        $message .= "\n--$text_boundary--\n"; 
        $message .= "\n--$main_boundary--\n"; 
        @mail ($to, $subject, $message, $headers); 
    }     
?>

Source : happycodings.com

It's only fair to share...Share on Google+Tweet about this on TwitterShare on Facebook
Labs

Posts you may like: