国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

在PHP中用Socket發(fā)送電子郵件(三)

2019-09-08 23:11:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

郵件發(fā)送處理   下面是真正的秘密了,可要看仔細(xì)了。:)


1    function send( $to,$from,$subject,$message)2    {34        //連接服務(wù)器5        $this->lastact="connect";67        $this->show_debug("Connect to SMTP server : ".$this->smtp,
"out");8        $this->fp = fsockopen ( $this->smtp, $this->port );9        if ( $this->fp )10        {1112            set_socket_blocking( $this->fp, true );13            $this->lastmessage=fgets($this->fp,512);14            $this->show_debug($this->lastmessage, "in");1516            if (! ereg ( "^220", $this->lastmessage ) ) 17            {18                return false;19            } 20            else 21            {22                $this->lastact="HELO " . $this->welcome . "/n";23                if(!$this->do_command($this->lastact, "250"))24                {25                    fclose($this->fp);26                    return false;27                }2829                $this->lastact="MAIL FROM: $from" . "/n";30                if(!$this->do_command($this->lastact, "250"))31                {32                    fclose($this->fp);33                    return false;34                }3536                $this->lastact="RCPT TO: $to" . "/n";37                if(!$this->do_command($this->lastact, "250"))38                {39                    fclose($this->fp);40                    return false;41                }42                43                //發(fā)送正文44                $this->lastact="DATA/n";45                if(!$this->do_command($this->lastact, "354"))46                {47                    fclose($this->fp);48                    return false;49                }5051                //處理Subject頭52                $head="Subject: $subject/n";53                if(!empty($subject) && !ereg($head, $message))54                {55                    $message = $head.$message;56                }57                58                //處理From頭59                $head="From: $from/n";60                if(!empty($from) && !ereg($head, $message))61                {62                    $message = $head.$message;63                }6465                //處理To頭66                $head="To: $to/n";67                if(!empty($to) && !ereg($head, $message))68                {69                    $message = $head.$message;70                }7172                //加上結(jié)束串73                if(!ereg("/n/./n", $message))74                    $message .= "/n./n";75                $this->show_debug($message, "out");76                fputs($this->fp, $message);7778                $this->lastact="QUIT/n";79                if(!$this->do_command($this->lastact, "250"))80                {81                    fclose($this->fp);82                    return false;83                }84            }85            return true;86        }87        else88        {89            $this->show_debug("Connect failed!", "in");90            return false;91        }92    }
  有些意思很清楚的我就不說(shuō)了。   這個(gè)函數(shù)一共有四個(gè)參數(shù),分別是$to表示收信人,$from表示發(fā)信人,$subject表求郵件主題和$message表示郵件體。如果處理成功則返回true,失敗則返回false。 第8行,連接郵件服務(wù)器,如果成功響應(yīng)碼應(yīng)為220。
第12行,設(shè)置阻塞模式,表示信息必須返回才能繼續(xù)。詳細(xì)說(shuō)明看手冊(cè)吧。
第16行,判斷響應(yīng)碼是否為220,如果是,則繼續(xù)處理,否則出錯(cuò)返回。
第22-27行,處理HELO指令,期望響應(yīng)碼為250。
第29-34行,處理MAIL FROM指令,期望響應(yīng)碼為250。
第36-41行,處理RCPT TO指令,期望響應(yīng)碼為250。
第44-49行,處理DATA指令,期望響應(yīng)碼為354。
第51-76行,生成郵件體,并發(fā)送。
第52-56行,如果$subject不為空,則查找郵件體中是否有主題部分,如果沒(méi)有,則加上主題部分。
第59-63行,如果$from不為空,則查找郵件體中是否有發(fā)信人部分,如果沒(méi)有,則加上發(fā)信人部分。
第66-70行,如果$to不為空,則查找郵件體中是否有收信人部分,如果沒(méi)有,則加上收信人部分。
第73-74行,查找郵件體是否有了結(jié)束行,如果沒(méi)有則加上郵件體的結(jié)束行(以"."作為單獨(dú)的一行的特殊行)。
第76行,發(fā)送郵件體。
第78-83行,執(zhí)行QUIT結(jié)否與服務(wù)器的連接,期望響應(yīng)碼為250。
第85行,返回處理成功標(biāo)志(true)。
第81-91行,與服務(wù)器連接失敗的處理。
 以上為整個(gè)send_mail類(lèi)的實(shí)現(xiàn),應(yīng)該不是很難的。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 萨嘎县| 安徽省| 柳河县| 三穗县| 荣昌县| 汾西县| 汉中市| 衡东县| 米脂县| 东城区| 虹口区| 嘉善县| 盘锦市| 甘谷县| 玛纳斯县| 仁怀市| 邹城市| 温州市| 镇原县| 扶绥县| 固原市| 兴国县| 师宗县| 福泉市| 尼木县| 日土县| 会宁县| 蛟河市| 汨罗市| 铁岭市| 紫云| 乌兰县| 民丰县| 靖边县| 华安县| 台北市| 桃源县| 定结县| 大姚县| 崇州市| 宜黄县|