define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE); define('SMTP_STATUS_CONNECTED', 2, TRUE);

class smtp {

var $connection; var $recipients; var $headers " /> 性做久久久久久久久浪潮,一个人HD在线观看免费高清视频 ,一道精品视频一区二区

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php a simple smtp class

smtp.class.php
復制代碼 代碼如下:
<?php  

define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE); 
define('SMTP_STATUS_CONNECTED', 2, TRUE); 

class 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; 
var $debug; 

/** 
* 參數為一個數組 
* host SMTP 服務器的主機 默認:localhost 
* port SMTP 服務器的端口 默認:25 
* helo 發送HELO命令的名稱 默認:localhost 
* user SMTP 服務器的用戶名 默認:空值 
* pass SMTP 服務器的登陸密碼 默認:空值 
* timeout 連接超時的時間 默認:5 
* @return bool 
*/ 

function 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(); 
$this->debug = false; 
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 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 郵件的主體 
*/ 

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)) 

if($this->debug) 
echo nl2br($data.CRLF); 
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; 

if($this->debug===true) 
echo nl2br($return.CRLF); 
return $return; 


else 

return FALSE; 



function set($var, $value) 

$this->$var = $value; 
return TRUE; 

} // End of class 
?> 

php技術php a simple smtp class,轉載需保留來源!

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

主站蜘蛛池模板: 麻豆AV久久无码精品九九 | 69夫妇交友群 | 国产亚洲日韩另类在线观看 | 国产亚洲福利精品一区 | 久久中文字幕亚洲精品最新 | 亚洲地址一地址二地址三 | 好看的电影网站亚洲一区 | 国产三级精品三级在线观看 | 久久久国产精品免费A片蜜芽广 | 99视频精品全部免费免费观 | 伦理片天堂eeuss影院2o12 | 国产在线精品一区二区在线看 | 亚洲日本天堂在线 | 美女脱了内裤张开腿让男人桶到爽 | 黄图gif揉胸吸奶 | 性生交片免费无码看人 | a级毛片黄免费a级毛片 | 最新国产三级在线不卡视频 | bbbbbxxxxx肥胖| 午夜免费小视频 | 秋霞午夜鲁丝片午夜精品久 | 国产伦精品一区二区三区免费观看 | 小小水蜜桃免费影院 | 国产午夜亚洲精品理论片八戒 | 免费观看成人毛片 | free高跟丝袜秘书hd | 国产网红主播精品福利大秀专区 | 美女挑战50厘米长的黑人 | 色愁愁久久久 | 欧美精品一区二区三区视频 | 韩国污动漫无遮掩无删减电脑版 | 高h乱np甄宓 | 樱花草在线影视WWW日本动漫 | 小黄文纯肉污到你湿 | 午夜国产福利 | 澳大利亚剧满足在线观看 | 嗯啊哈啊好棒用力插啊 | 99热久久精品国产一区二区 | 欧美含羞草免费观看全部完 | 诱受H嗯啊巨肉各种play | 国产成人在线视频免费观看 |