发送mime邮件类_PHP

Jun 01, 2016 pm 12:37 PM
name th hantar mel

if(basename($PHP_SELF)== "class.html_mime_mail.inc")
{
  include  "fileinfo.inc";
  echo  "

<br>
    如果不含圖檔:<br>
     \$mail = new html_mime_mail();<br>
     \$html =\"HTML內容\";<br>
     \$mail->add_html(\$html, \$text);<br>
     \$mail->build_message();<br>
     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>
<br>
    <hr><br>
    如果含圖檔:<br>
    \$url=\"www.cuti.com.my/AD/\";    //圖檔位?FONT color="#007700">} ?FONT color="#007700">}頭無http:// 結尾有斜線<br>
    \$path=\"/MAIL/AD/\";    //圖檔路徑 結尾有斜線<br>
<br>
    \$filename1 = 'a.jpg';<br>
    \$backgrnd1 = fread(\$fp = fopen(\$path.\$filename1, 'r'), filesize(\$path.\$filename1));<br>
    fclose(\$fp);<br>
    ...依此類推...<br>
    \$filename6 = 'f.gif';<br>
        \$backgrnd6 = fread(\$fp = fopen(\$path.\$filename6, 'r'), filesize(\$path.\$filename6));<br>
        fclose(\$fp);<br>
    <br>
    \$mail->add_html_image(\$backgrnd1,\$filename1,'image/jpeg','http://'.\$url.\$filename1);<br>
    ...依此類推...<br>
    \$mail->add_html_image(\$backgrnd6,\$filename6,'image/gif','http://'.\$url.\$filename6);<br>
<br>
     \$mail = new html_mime_mail();<br>
     \$html =\"HTML含圖內容\";<br>
     \$mail->add_html(\$html, \$text);<br>
     \$mail->build_message();<br>
     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>
  ";<br>
        <br>
}<br>
/***************************************<br>
** Title.........: HTML Mime Mail class<br>
** Version.......: 1.26<br>
** Author........: Richard Heyes <richard.heyes><br>
** Filename......: html_mime_mail.class<br>
** Last changed..: 25/06/2000<br>
** Notes.........: Based upon mime_mail.class<br>
**                 by Tobias Ratschiller <tobias><br>
**                 and Sascha Schumann <sascha>.<br>
**                  - Thanks to Thomas Flemming for supplying a fix<br>
**                    for Win32.<br>
**                  - Made headers terminated by CRLF instead of LF, now<br>
**                    compliant with RFC822. Thanks to Pao-Hsi Huang.<br>
**                  - Fixed bug; certain mail systems (gmx.net in particular)<br>
**                    were rejecting mail because of a space character either<br>
**                    side of the equal sign on the boundary line. Thanks to<br>
**                    Peter Holm for notifying me.<br>
**                  - Fixed bug; $html_images was tested to be an array or not<br>
**                    but was set to be an array during object creation, so the<br>
**                    test always returned true. Thanks to Bob Silva for<br>
**                    notifying me.<br>
**                  - Fixed bug; when looping with $obj->send(), From: headers<br>
**                    were accumulating. Bummer. Thanks to Lance Rasmussen for<br>
**                    notifying me.<br>
**                  - See http://www.heyes-computing.net/scripts/ for a zip/tar<br>
**                    containing an example script.<br>
***************************************/ <br>
<br>
class html_mime_mail{<br>
<br>
        var $headers;<br>
        var $body;<br>
        var $multipart;<br>
        var $mime;<br>
        var $html;<br>
        var $html_text;<br>
        var $html_images = array();<br>
        var $cids = array();<br>
        var $do_html;<br>
        var $parts = array();<br>
<br>
/***************************************<br>
** Constructor function. Sets the headers<br>
** if supplied.<br>
***************************************/ <br>
        function html_mime_mail($headers =  '){<br>
                $this->headers = $headers;<br>
        }<br>
<br>
/***************************************<br>
** Adds a html part to the mail.<br>
** Also replaces image names with<br>
** content-id's.<br>
***************************************/ <br>
        function add_html($html, $text){<br>
                $this->do_html = 1;<br>
                $this->html = $html;<br>
                $this->html_text = $text;<br>
                if(is_array($this->html_images) AND count($this->html_images) > 0){<br>
                 /*      for($i=0; $i<count>html_images); $i++){<br>
                                $this->html = ereg_replace($this->html_images[$i]['name'], 'cid:'.$this->html_images[$i]['cid'], $this->html);<br>
                        }<br>
        */ <br>
                }<br>
        }<br>
<br>
/***************************************<br>
** Builds html part of email.<br>
***************************************/ <br>
        function build_html($orig_boundary){<br>
                $sec_boundary =  '=_'.md5(uniqid(time()));<br>
                $thr_boundary =  '=_'.md5(uniqid(time()));<br>
<br>
                if(count($this->html_images) == 0){<br>
                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>
<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n\n";<br>
                        $this->multipart.= $this->html_text. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>
                        $this->multipart.= $this->html. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
<br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>
                        $this->multipart.=  '--'.$sec_boundary. "--\n\n";<br>
                }else{<br>
                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/related;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>
<br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$thr_boundary. "\"\n\n\n";<br>
<br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>
<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>
                        $this->multipart.= $this->html. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
<br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
<br>
                        for($i=0; $i<count>html_images); $i++){<br>
                                $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                                $this->build_html_image($i);<br>
                        }<br>
<br>
                        $this->multipart.=  "--".$sec_boundary. "--\n\n";<br>
                }<br>
        }<br>
/***************************************<br>
** Adds an image to the list of embedded<br>
** images.<br>
***************************************/ <br>
        function add_html_image($file, $name =  ', $c_type= 'application/octet-stream', $location= '){<br>
                $this->html_images[] = array(  'body' => $file,<br>
                                               'name' => $name,<br>
                                               'c_type' => $c_type,<br>
                           'location' => $location,<br>
                                               'cid' => md5(uniqid(time())) );<br>
        }<br>
<br>
<br>
/***************************************<br>
** Adds a file to the list of attachments.<br>
***************************************/ <br>
        function add_attachment($file, $name =  ', $c_type= 'application/octet-stream'){<br>
                $this->parts[] = array(  'body' => $file,<br>
                                         'name' => $name,<br>
                                         'c_type' => $c_type );<br>
        }<br>
<br>
/***************************************<br>
** Builds an embedded image part of an<br>
** html mail.<br>
***************************************/ <br>
        function build_html_image($i){<br>
                $this->multipart.=  'Content-Type: '.$this->html_images[$i][ 'c_type'];<br>
<br>
                if($this->html_images[$i][ 'name'] !=  ') $this->multipart .=  '; name="'.$this->html_images[$i][ 'name']. "\"\n";<br>
                else $this->multipart .=  "\n";<br>
<br>
                $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n";<br>
        $this->multipart.=  'Content-Location:'.$this->html_images[$i][ 'location']. "\n";<br>
                $this->multipart.=  'Content-ID: html_images[$i][ 'cid']. ">\n\n";<br>
                $this->multipart.= chunk_split(base64_encode($this->html_images[$i][ 'body'])). "\n";<br>
        }<br>
<br>
/***************************************<br>
** Builds a single part of a multipart<br>
** message.<br>
***************************************/ <br>
        function build_part($i){<br>
                $message_part =  ';<br>
                $message_part.=  'Content-Type: '.$this->parts[$i][ 'c_type'];<br>
                if($this->parts[$i][ 'name'] !=  ')<br>
                        $message_part .=  '; name="'.$this->parts[$i][ 'name']. "\"\n";<br>
                else<br>
                        $message_part .=  "\n";<br>
<br>
                 // Determine content encoding. <br>
                if($this->parts[$i][ 'c_type'] ==  'text/plain'){<br>
                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>
                }else{<br>
                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n";<br>
                        $message_part.=  'Content-Disposition: attachment; filename="'.$this->parts[$i][ 'name']. "\"\n\n";<br>
                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>
                }<br>
<br>
                return $message_part;<br>
        }<br>
<br>
/***************************************<br>
** Builds the multipart message from the<br>
** list ($this->parts).<br>
***************************************/ <br>
        function build_message(){<br>
                $boundary =  '=_'.md5(uniqid(time()));<br>
<br>
                $this->headers.=  "MIME-Version: 1.0\n";<br>
                $this->headers.=  "Content-Type: multipart/mixed;".chr(10).chr(9). "boundary=\"".$boundary. "\"\n";<br>
                $this->multipart =  ';<br>
//                $this->multipart.= "This is a MIME encoded message.\nCreated by html_mime_mail.class.\nSee http://www.heyes-computing.net/scripts/ for a copy.\n\n"; <br>
<br>
                if(isset($this->do_html) AND $this->do_html == 1) $this->build_html($boundary);<br>
                if(isset($this->body) AND $this->body !=  ') $this->parts[] = array( 'body' => $this->body,  'name' =>  ',  'c_type' =>  'text/plain');<br>
<br>
                for($i=(count($this->parts)-1); $i>=0; $i--){<br>
                        $this->multipart.=  '--'.$boundary. "\n".$this->build_part($i);<br>
                }<br>
<br>
                $this->mime = $this->multipart. "--".$boundary. "--\n";<br>
        }<br>
<br>
/***************************************<br>
** Sends the mail.<br>
***************************************/ <br>
        function send($to_name, $to_addr, $from_name, $from_addr, $subject =  ', $headers =  '){<br>
<br>
                if($to_name !=  ') $to =  '"'.$to_name. '" ';<br>
                else $to = $to_addr;<br>
<br>
                if($from_name !=  ') $from =  '"'.$from_name. '" ';<br>
                else $from = $from_addr;<br>
<br>
                mail($to, $subject, $this->mime,  'From: '.$from. "\n".$headers. "\n".$this->headers);<br>
        }<br>
<br>
/***************************************<br>
** Use this method to deliver using direct<br>
** smtp connection. Relies upon Manuel Lemos'<br>
** smtp mail delivery class available at:<br>
** http://phpclasses.upperdesign.com<br>
**<br>
** void smtp_send( string *Name* of smtp object,<br>
**                 string From address,<br>
**                 array  To addresses,<br>
**                 string Subject)<br>
***************************************/ <br>
        function smtp_send($smtp_obj, $from_addr, $to_addr, $subject){<br>
                global $$smtp_obj;<br>
                $smtp_obj = $$smtp_obj;<br>
<br>
                $this->headers .=  'From: '.$from_addr. "\n";<br>
                $this->headers .=  'Subject: '.$subject. "\n";<br>
<br>
                if(substr($this->headers, -2) ==  "\n") $this->headers = substr($this->headers,0,-2);<br>
                $this->headers = explode( "\n", $this->headers);<br>
<br>
                $smtp_obj->sendmessage($from_addr, $to_addr, $this->headers, $this->mime);<br>
        }<br>
<br>
}  // End of class. <br>
?><br>

                
					
		
		
		
    </count></count></sascha></tobias></richard.heyes>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

E-mel Outlook hilang daripada panel kawalan dalam Windows 11 E-mel Outlook hilang daripada panel kawalan dalam Windows 11 Feb 29, 2024 pm 03:16 PM

E-mel Outlook hilang daripada panel kawalan dalam Windows 11

PHP menghantar e-mel secara tidak segerak: elakkan menunggu lama untuk e-mel dihantar. PHP menghantar e-mel secara tidak segerak: elakkan menunggu lama untuk e-mel dihantar. Sep 19, 2023 am 09:10 AM

PHP menghantar e-mel secara tidak segerak: elakkan menunggu lama untuk e-mel dihantar.

Ucapkan selamat tinggal kepada protokol Slot Mel Jauh dalam Windows 11 Ucapkan selamat tinggal kepada protokol Slot Mel Jauh dalam Windows 11 Apr 14, 2023 pm 10:28 PM

Ucapkan selamat tinggal kepada protokol Slot Mel Jauh dalam Windows 11

Cantuman mel perkataan mencetak halaman kosong Cantuman mel perkataan mencetak halaman kosong Feb 19, 2024 pm 04:51 PM

Cantuman mel perkataan mencetak halaman kosong

Petua WhatsApp: Cara Menghantar Foto dan Video HD Petua WhatsApp: Cara Menghantar Foto dan Video HD Sep 10, 2023 am 10:13 AM

Petua WhatsApp: Cara Menghantar Foto dan Video HD

Bagaimana untuk menghantar fail kepada orang lain di TikTok? Bagaimana untuk memadam fail yang dihantar kepada orang lain? Bagaimana untuk menghantar fail kepada orang lain di TikTok? Bagaimana untuk memadam fail yang dihantar kepada orang lain? Mar 22, 2024 am 08:30 AM

Bagaimana untuk menghantar fail kepada orang lain di TikTok? Bagaimana untuk memadam fail yang dihantar kepada orang lain?

Cara Membetulkan E-mel Outlook Terperangkap dalam Isu Peti Keluar Cara Membetulkan E-mel Outlook Terperangkap dalam Isu Peti Keluar May 01, 2023 am 10:01 AM

Cara Membetulkan E-mel Outlook Terperangkap dalam Isu Peti Keluar

Fungsi penjejakan e-mel PHP: memahami tingkah laku pengguna dan maklum balas tentang e-mel. Fungsi penjejakan e-mel PHP: memahami tingkah laku pengguna dan maklum balas tentang e-mel. Sep 19, 2023 am 08:51 AM

Fungsi penjejakan e-mel PHP: memahami tingkah laku pengguna dan maklum balas tentang e-mel.

See all articles