发送mime邮件类_PHP

Jun 01, 2016 pm 12:37 PM
name th 送信 郵便

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>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11のコントロールパネルからOutlookメールが失われる Windows 11のコントロールパネルからOutlookメールが失われる Feb 29, 2024 pm 03:16 PM

Windows 11 のコントロール パネルに Outlook メール アイコンがありませんか?この予期せぬ状況は、通信ニーズに OutlookMail に依存している一部の人々に混乱と懸念を引き起こしました。 Outlook メールがコントロール パネルに表示されないのはなぜですか?コントロール パネルに Outlook メール アイコンが表示されない理由はいくつか考えられます。 Outlook が正しくインストールされていません。 Microsoft Store から Office アプリケーションをインストールしても、メール アプレットはコントロール パネルに追加されません。コントロール パネルに mlcfg32.cpl ファイルの場所がありません。レジストリ内のmlcfg32.cplファイルへのパスが正しくありません。現在、オペレーティング システムはこのアプリケーションを実行するように構成されていません

PHP は電子メールを非同期に送信します。電子メールの送信を長時間待つ必要がなくなります。 PHP は電子メールを非同期に送信します。電子メールの送信を長時間待つ必要がなくなります。 Sep 19, 2023 am 09:10 AM

PHP は電子メールを非同期に送信します。電子メールの送信を長時間待つ必要がなくなります。はじめに: Web 開発では、電子メールの送信は一般的な機能の 1 つです。しかし、メールの送信にはサーバーとの通信が必要となるため、ユーザーはメールの送信を待つ間、長時間待たされてしまうことがよくあります。この問題を解決するには、PHP を使用して電子メールを非同期に送信し、ユーザー エクスペリエンスを最適化します。この記事では、具体的なコード例を通じてメールを非同期に送信し、長時間の待ち時間を回避するための PHP の実装方法を紹介します。 1. メールの非同期送信について理解する

Windows 11 のリモート メール スロット プロトコルに別れを告げる Windows 11 のリモート メール スロット プロトコルに別れを告げる Apr 14, 2023 pm 10:28 PM

私たちは最近、Microsoft が最新のオペレーティング システムである Windows 11 に追加する予定の多くの機能について話してきました。しかし、Microsoft が何も追加せず、何も取り返さないとは思わないでください。実際、ソフトウェア大手はかなりの数の古い機能を削除し始めました。 Windows 12 のリリースに先立って MSDT 機能を廃止する計画を発表した後、レドモンドの開発者にさらなる悪い知らせが届きました。実際には、リモート メール スロットのレガシー ツールについて話しています。あなたが実際にこれを知りたいと言うとき、私たちを信じてください。 Microsoft は、ビルド 25314 でこの機能の非推奨を開始しました。ほんの数日前、Microsoft が新しい Canary チャネルでビルド 25314 をリリースしたことを覚えていると思います。上記のバージョンには多くの新機能が含まれています

Word の差し込み印刷で空白ページが印刷される Word の差し込み印刷で空白ページが印刷される Feb 19, 2024 pm 04:51 PM

Word を使用して差し込み印刷文書を印刷するときに空白のページが表示される場合は、この記事が役に立ちます。差し込み印刷は、個人用の文書を簡単に作成し、複数の受信者に送信できる便利な機能です。 Microsoft Word の差し込み印刷機能は、ユーザーが受信者ごとに同じコンテンツを手動でコピーする時間を節約できるため、高く評価されています。差し込み文書を印刷するには、[差し込み文書] タブに移動します。しかし、一部の Word ユーザーは、差し込み文書を印刷しようとすると、プリンターで空白のページが印刷されたり、まったく印刷されなかったりすると報告しています。これは、間違ったフォーマットまたはプリンター設定が原因である可能性があります。文書とプリンターの設定を確認し、印刷前に必ず文書をプレビューして内容が正しいことを確認してください。もし

WhatsApp のヒント: HD 写真とビデオを送信する方法 WhatsApp のヒント: HD 写真とビデオを送信する方法 Sep 10, 2023 am 10:13 AM

WhatsApp は、ユーザーがメッセージング プラットフォームを通じて写真やビデオを高解像度で送信できる新しいオプションを開始しました。それがどのように行われるかを知るために読んでください。 WhatsApp は、iPhone と Android ユーザーが高解像度で写真やビデオを送信できるようにするアップデートをリリースし、ついにサービスの低品質メディア共有制限に対処しました。このオプションは「HD 品質」と呼ばれ、ユーザーが最小限の圧縮でより鮮明な写真やビデオを送信できることを意味します。たとえば、iPhone でキャプチャした画像は、以前の最大解像度 920x1280 ではなく 3024x4032 で送信できるようになり、ビデオは 848x476 ではなく 1280x718 解像度で送信できるようになりました。

TikTokで他の人にファイルを送信するにはどうすればよいですか?他の人に送信したファイルを削除するにはどうすればよいですか? TikTokで他の人にファイルを送信するにはどうすればよいですか?他の人に送信したファイルを削除するにはどうすればよいですか? Mar 22, 2024 am 08:30 AM

Douyin では、ユーザーは自分の人生の詳細や才能を共有するだけでなく、他のユーザーと交流することもできます。このプロセスでは、写真やビデオなどのファイルを他のユーザーに送信する必要がある場合があります。では、Douyin で他の人にファイルを送信するにはどうすればよいでしょうか? 1.Douyin で他の人にファイルを送信するにはどうすればよいですか? 1. Douyin を開き、ファイルを送信するチャット インターフェイスに入ります。 2. チャット インターフェイスの「+」記号をクリックし、「ファイル」を選択します。 3. ファイル オプションで、写真、ビデオ、オーディオ、その他のファイルの送信を選択できます。送信したいファイルを選択後、「送信」をクリックします。 4. 相手がファイルを受け入れるまで待ちます。相手がそれを受け入れると、ファイルは正常に転送されます。 2.Douyin で他の人に送信したファイルを削除するにはどうすればよいですか? 1. Douyin を開き、送信したテキストを入力します。

Outlookメールが送信トレイに残っている問題を修正する方法 Outlookメールが送信トレイに残っている問題を修正する方法 May 01, 2023 am 10:01 AM

最近、多くのユーザーが Outlook メールが送信トレイに残っている問題を報告しています。何度か電子メールの送信を試みても、問題は解決されませんでした。この問題が発生して送信トレイ フォルダーを確認すると、メッセージがそこに残っています。 Outlook の送信トレイに電子メールが滞留する考えられる理由: 電子メール内の添付ファイルがサイズ制限を超えているため、送信プロセスが遅くなります。メール サーバーでの Outlook アカウント認証の問題 Outlook またはオフライン Outlook のメール サーバーの送受信設定が正しくありません。 Outlook データ ファイルが他のソフトウェアで使用されています。ウイルス対策ソフトウェアは送信メールをスキャンします。この問題が気になってメールを送信できない場合は、

Windows 11 および Windows 10 用の最新の Outlook アプリを含むパブリック プレビューが間もなく公開されます。 Windows 11 および Windows 10 用の最新の Outlook アプリを含むパブリック プレビューが間もなく公開されます。 May 09, 2023 am 08:07 AM

Windows 11 のネイティブ アプリの更新の一環として、Microsoft は新しい Outlook をリリースする予定です。このアプリは一から構築され、現在プレビューの準備が進められており、おそらく Microsoft の Windows 11 ハイブリッド イベント中に発表される予定です。このプロジェクトは「ProjectMonarch」と呼ばれ、この新しい Outlook は 1 年以上かけて開発されています。これは、メールやカレンダーなどの既存のすべての Windows 電子メール クライアントとデスクトップ バージョンの Outlook を統合することを目的とした Web アプリの再起動です。 Microsoft は、OutlookOne によって、ユーザーがさまざまなデスクトップ プラットフォーム間で電子メールを管理できるようにしたいと考えています。アクセス方法はたくさんあります

See all articles