亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php開發SMTP傳輸SMTP類發送郵件方法(1)

2020-03-22 20:31:06
字體:
來源:轉載
供稿:網友
  • <?phpdefine('SMTP_STATUS_NOT_CONNECTED', 1, TRUE);define('SMTP_STATUS_CONNECTED', 2, TRUE);html' target='_blank'>class p8_smtp{    var $connection;    var $recipients;    var $headers;    var $timeout;    var $errors;    var $status;    var $body;    var $from;    var $host;    var $port;    var $helo;    var $auth;    var $user;    var $pass;        /**     *  參數為一個數組     *  host        SMTP 服務器的主機       默認:localhost     *  port        SMTP 服務器的端口       默認:25     *  helo        發送HELO命令的名稱      默認:localhost     *  user        SMTP 服務器的用戶名     默認:空值     *  pass        SMTP 服務器的登陸密碼   默認:空值     *  timeout     連接超時的時間          默認:5     *  @return  bool     */        function p8_smtp($params = array())    {        if(!defined('CRLF')) define('CRLF', "/r/n", TRUE);                $this->timeout  = 5;        $this->status   = SMTP_STATUS_NOT_CONNECTED;        $this->host     = 'localhost';        $this->port     = 25;        $this->auth     = FALSE;        $this->user     = '';        $this->pass     = '';        $this->errors   = array();        foreach($params as $key => $value)        {            $this->$key = $value;        }                $this->helo     = $this->host;        //  如果沒有設置用戶名則不驗證                $this->auth = ('' == $this->user) ? FALSE : TRUE;    }    function connect($params = array())    {        if(!isset($this->status))        {            $obj = new p8_smtp($params);                        if($obj->connect())            {                $obj->status = SMTP_STATUS_CONNECTED;            }            return $obj;        }        else        {                        $this->connection = fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout);            socket_set_timeout($this->connection, 0, 250000);            $greeting = $this->get_data();                        if(is_resource($this->connection))            {                $this->status = 2;                return $this->auth ? $this->ehlo() : $this->helo();            }            else            {                $this->errors[] = 'Failed to connect to server: '.$errstr;                return FALSE;            }        }    }        /**     * 參數為數組     * recipients      接收人的數組     * from            發件人的地址,也將作為回復地址     * headers         頭部信息的數組     * body            郵件的主體     * www.it165.net     */        function send($params = array())    {        foreach($params as $key => $value)        {            $this->set($key, $value);        }        if($this->is_connected())        {            //  服務器是否需要驗證                 if($this->auth)            {                if(!$this->auth()) return FALSE;            }            $this->mail($this->from);            if(is_array($this->recipients))            {                foreach($this->recipients as $value)                {                    $this->rcpt($value);                }            }            else            {                $this->rcpt($this->recipients);            }            if(!$this->data()) return FALSE;            $headers = str_replace(CRLF.'.', CRLF.'..', trim(implode(CRLF, $this->headers)));            $body    = str_replace(CRLF.'.', CRLF.'..', $this->body);            $body    = $body[0] == '.' ? '.'.$body : $body;            $this->send_data($headers);            $this->send_data('');            $this->send_data($body);            $this->send_data('.');            return (substr(trim($this->get_data()), 0, 3) === '250');        }        else        {            $this->errors[] = 'Not connected!';            return FALSE;        }    }        function helo()    {        if(is_resource($this->connection)                AND $this->send_data('HELO '.$this->helo)                AND substr(trim($error = $this->get_data()), 0, 3) === '250' )        {            return TRUE;        }        else        {            $this->errors[] = 'HELO command failed, output: ' . trim(substr(trim($error),3));            return FALSE;        }    }            function ehlo()    {        if(is_resource($this->connection)                AND $this->send_data('EHLO '.$this->helo)                AND substr(trim($error = $this->get_data()), 0, 3) === '250' )        {            return TRUE;        }        else        {            $this->errors[] = 'EHLO command failed, output: ' . trim(substr(trim($error),3));            return FALSE;        }    }        function auth()    {        if(is_resource($this->connection)                AND $this->send_data('AUTH LOGIN')                AND substr(trim($error = $this->get_data()), 0, 3) === '334'                AND $this->send_data(base64_encode($this->user))            // Send username                AND substr(trim($error = $this->get_data()),0,3) === '334'                AND $this->send_data(base64_encode($this->pass))            // Send password                AND substr(trim($error = $this->get_data()),0,3) === '235' )        {            return TRUE;        }        else        {            $this->errors[] = 'AUTH command failed: ' . trim(substr(trim($error),3));            return FALSE;        }    }        function mail($from)    {        if($this->is_connected()            AND $this->send_data('MAIL FROM:<'.$from.'>')            AND substr(trim($this->get_data()), 0, 2) === '250' )        {            return TRUE;        }        else        {            return FALSE;        }    }    function rcpt($to)    {        if($this->is_connected()            AND $this->send_data('RCPT TO:<'.$to.'>')            AND substr(trim($error = $this->get_data()), 0, 2) === '25' )        {            return TRUE;        }        else        {            $this->errors[] = trim(substr(trim($error), 3));            return FALSE;        }    }    function data()    {        if($this->is_connected()            AND $this->send_data('DATA')            AND substr(trim($error = $this->get_data()), 0, 3) === '354' )        {             return TRUE;        }        else        {            $this->errors[] = trim(substr(trim($error), 3));            return FALSE;        }    }    function is_connected()    {        return (is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED));    }    function send_data($data)    {        if(is_resource($this->connection))        {            return fwrite($this->connection, $data.CRLF, strlen($data)+2);        }        else        {            return FALSE;        }    }    function &get_data()    {        $return = '';        $line   = '';        if(is_resource($this->connection))        {            while(strpos($return, CRLF) === FALSE OR substr($line,3,1) !== ' ')            {                $line    = fgets($this->connection, 512);                $return .= $line;            }            return $return;        }        else        {            return FALSE;        }    }    function set($var, $value)    {        $this->$var = $value;        return TRUE;    }} // End of classclass smtp{	var $debug;	var $host;	var $port;	var $auth;	var $user;	var $pass;	function smtp($host = "", $port = 25,$auth = false,$user,$pass){		$this->host=$host;		$this->port=$port;		$this->auth=$auth;		$this->user=$user;		$this->pass=$pass;	}	function sendmail($to,$from, $subject, $content, $T=0){		global $webdb;		//$name, $email, $subject, $content, $type=0		$type=1;		$name=array("{$webdb[webname]}會員");		$email=array($to);		$_CFG['smtp_host']= $this->host;		$_CFG['smtp_port']= $this->port;		$_CFG['smtp_user']= $this->user;		$_CFG['smtp_pass']= $this->pass;		$_CFG['name']= $webdb[webname];		$_CFG['smtp_mail']= $from;		//$name = "=?UTF-8?B?".base64_encode($name)."==?=";		$subject = "=?gbk?B?".base64_encode($subject)."==?=";		$content = base64_encode($content);		$headers[] = "To:=?gbk?B?".base64_encode($name[0])."?= <$email[0]>";		$headers[] = "From:=?gbk?B?".base64_encode($_CFG[name])."?= <$_CFG[smtp_mail]>";		$headers[] = "MIME-Version: Blueidea v1.0";		$headers[] = "X-Mailer: 9gongyu Mailer v1.0";		//$headers[] = "From:=?UTF-8?B?".base64_encode($_CFG['shop_name'])."==?=<$_CFG[smtp_mail]>";		$headers[] = "Subject:$subject";		$headers[] = ($type == 0) ? "Content-Type: text/plain; charset=gbk; format=flowed" : "Content-Type: text/html; charset=gbk; format=flowed";		$headers[] = "Content-Transfer-Encoding: base64";		$headers[] = "Content-Disposition: inline";		//    SMTP 服務器信息		$params['host'] = $_CFG['smtp_host'];		$params['port'] = $_CFG['smtp_port'];		$params['user'] = $_CFG['smtp_user'];		$params['pass'] = $_CFG['smtp_pass'];		if (empty($params['host']) || empty($params['port']))		{			// 如果沒有設置主機和端口直接返回 false			return false;		}		else		{			//  發送郵件			$send_params['recipients']    = $email;			$send_params['headers']        = $headers;			$send_params['from']        = $_CFG['smtp_mail'];			$send_params['body']        = $content;			/*        			echo "<pre>";			print_r($params);			print_r($send_params);			echo "</pre>";			exit;			*/			$smtp = new p8_smtp($params);			if($smtp->connect() AND $smtp->send($send_params))			{				return TRUE;			}			else 			{				return FALSE;			} // end if		}	}}?>

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产精品亚洲自拍| 午夜精品国产精品大乳美女| 日韩久久午夜影院| 日本韩国在线不卡| 91精品视频在线| 精品国产拍在线观看| 国产一区香蕉久久| 欧美肥老妇视频| 欧美一级免费视频| 日韩欧美国产黄色| 久久亚洲精品一区| 国产日韩精品在线| 精品国产乱码久久久久久天美| 国产精品久久久久免费a∨大胸| 日韩欧美在线视频免费观看| 456国产精品| 91在线观看免费观看| 日韩国产中文字幕| 91久久久久久久| 青青草精品毛片| 国语自产精品视频在线看抢先版图片| 日韩视频免费在线观看| 国产91在线高潮白浆在线观看| 国产精品久久久久久久久| 国产99久久精品一区二区永久免费| 欧洲亚洲免费在线| 91在线观看免费网站| 久久夜色精品国产亚洲aⅴ| 91久久夜色精品国产网站| 欧美精品18videosex性欧美| 亚洲精品一区二三区不卡| 日韩国产欧美精品一区二区三区| 成人午夜在线影院| 日本高清不卡在线| 国产欧亚日韩视频| 夜夜嗨av色一区二区不卡| 国产精品偷伦视频免费观看国产| 国产精品第一视频| 成人av在线网址| 亚洲精品乱码久久久久久按摩观| 亚洲2020天天堂在线观看| 国产精品久久久久影院日本| 国产成人精品999| 亚洲最大的成人网| 日韩av影视在线| 亚洲成人久久电影| 欧美激情日韩图片| 国产一区二区三区视频免费| 性色av一区二区三区免费| 国产精品网红直播| 亚洲一区二区三区在线免费观看| 中文字幕在线观看日韩| 久久久亚洲欧洲日产国码aⅴ| 九九热精品视频在线播放| 日韩精品一区二区视频| 成人免费在线网址| 亚洲图片在线综合| 国产精品一区久久| 日韩成人在线视频| 亚洲成人av片| 亚洲xxx大片| 97久久久久久| 久久国产精品久久久久久久久久| 欧美刺激性大交免费视频| 日韩av毛片网| 姬川优奈aav一区二区| 久久久久久久久久久91| 97久久伊人激情网| 久久激情视频免费观看| 欧美日韩成人在线播放| 欧美色视频日本高清在线观看| 国产欧美一区二区白浆黑人| 在线视频中文亚洲| 91精品国产色综合| 日韩精品免费在线视频| 成人福利视频在线观看| 91成品人片a无限观看| 日本一区二区在线播放| 国产视频精品在线| 亚洲欧美日韩中文在线| 欧美成人精品不卡视频在线观看| 91久久精品美女| 狠狠躁夜夜躁人人爽天天天天97| 亚洲国产精品999| 久久久999成人| 中文字幕日韩精品在线| 久久视频在线免费观看| 欧美高清电影在线看| 欧美高清在线视频观看不卡| 欧美视频不卡中文| 亚洲综合精品伊人久久| 亚洲已满18点击进入在线看片| 国内精品模特av私拍在线观看| 国产日韩在线观看av| 国产精品老牛影院在线观看| 92看片淫黄大片欧美看国产片| xxav国产精品美女主播| 高跟丝袜一区二区三区| 国产精品大陆在线观看| 欧美色videos| 日韩精品中文字| 国产成人一区二区三区电影| 日韩大陆欧美高清视频区| 日韩精品亚洲元码| 国产午夜精品全部视频在线播放| 亚洲精品日韩丝袜精品| 这里精品视频免费| 国产91免费看片| 亚洲女成人图区| 亚洲男人天堂九九视频| 国产精品香蕉在线观看| 日韩av不卡电影| 26uuu亚洲伊人春色| 国产精品一区二区三区久久久| 日韩有码在线观看| 成人福利网站在线观看11| 欧美激情视频一区| 日韩精品在线观看视频| 91在线看www| 亚洲精品午夜精品| 国产成人亚洲综合91| 欧美激情视频一区| 久久激情视频久久| 国产欧美日韩高清| 欧美老女人性视频| 麻豆一区二区在线观看| 国产精品久久久久77777| 国产视频综合在线| 欧美成人性生活| 国产成人aa精品一区在线播放| 亚洲成人在线视频播放| 久久人人爽亚洲精品天堂| 亚洲男人天堂手机在线| 91伊人影院在线播放| 国产色视频一区| 色无极影院亚洲| 久久亚洲春色中文字幕| 日本精品免费一区二区三区| 亚洲福利视频网| 欧美色道久久88综合亚洲精品| 亚洲第一精品夜夜躁人人躁| 国产精品中文字幕在线观看| 国产一区二区久久精品| 国内揄拍国内精品| 精品久久久久久久大神国产| 国模吧一区二区| 国产精品久久久亚洲| 亚洲国产精彩中文乱码av| 尤物99国产成人精品视频| 一本色道久久88精品综合| 中文字幕视频在线免费欧美日韩综合在线看| 色噜噜狠狠狠综合曰曰曰| 在线性视频日韩欧美| 国产日韩中文字幕| 亚洲欧美一区二区激情| 26uuu亚洲国产精品| 北条麻妃一区二区在线观看| 国内自拍欧美激情| 亚洲有声小说3d| 久久影院免费观看| 国产中文字幕日韩| 日本一区二三区好的精华液| 韩国日本不卡在线| 久久久亚洲精品视频|