欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

php基于socket實現SMTP發送郵件的方法_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:php計算兩個整數的最大公約數常用算法小結
這篇文章主要介紹了php計算兩個整數的最大公約數常用算法,實例總結了求最大公約數的三種常用方法,具有一定參考借鑒價值,需要的朋友可以參考下 本文實例講述了php計算兩個整數的最大公約數常用算法。分享給大家供大家參考。具體如下: 代碼如下:?php //計時,返回秒 fun

 這篇文章主要介紹了php基于socket實現SMTP發送郵件的方法,實例分析了php采用socket實現smtp發送郵件的原理與技巧,具有一定參考借鑒價值,需要的朋友可以參考下

   

本文實例講述了php基于socket實現SMTP發送郵件的方法。分享給大家供大家參考。具體分析如下:

php采用socket通過SMTP發送郵件。
用的是php的php-sockets擴展,可以發送純文本和html格式的郵件。代碼如下:

代碼如下:
<?php
/**
* 郵件發送類
* 支持發送純文本郵件和HTML格式的郵件
* @example
* $config = array(
* "from" => "*****",
* "to" => "***",
* "subject" => "test",
* "body" => "<b>test</b>",
* "username" => "***",
* "password" => "****",
* "isHTML" => true
* );
*
* $mail = new MySendMail();
*
* $mail->setServer("smtp.126.com");
*
* $mail->setMailInfo($config);
* if(!$mail->sendMail()) {
* echo $mail->error();
* return 1;
* }
*/
class MySendMail {
/**
* @var 郵件傳輸代理用戶名
* @access private
*/
private $_userName;
/**
* @var 郵件傳輸代理密碼
* @access private
*/
private $_password;
/**
* @var 郵件傳輸代理服務器地址
* @access protected
*/
protected $_sendServer;
/**
* @var 郵件傳輸代理服務器端口
* @access protected
*/
protected $_port=25;
/**
* @var 發件人
* @access protected
*/
protected $_from;
/**
* @var 收件人
* @access protected
*/
protected $_to;
/**
* @var 主題
* @access protected
*/
protected $_subject;
/**
* @var 郵件正文
* @access protected
*/
protected $_body;
/**
* @var 是否是HTML格式的郵件
* @access protected
*/
protected $_isHTML=false;
/**
* @var socket資源
* @access protected
*/
protected $_socket;
/**
* @var 錯誤信息
* @access protected
*/
protected $_errorMessage;
public function __construct($from="", $to="", $subject="", $body="", $server="", $username="", $password="",$isHTML="", $port="") {
if(!empty($from)){
$this->_from = $from;
}
if(!empty($to)){
$this->_to = $to;
}
if(!empty($subject)){
$this->_subject = $subject;
}
if(!empty($body)){
$this->_body = $body;
}
if(!empty($isHTML)){
$this->_isHTML = $isHTML;
}
if(!empty($server)){
$this->_sendServer = $server;
}
if(!empty($port)){
$this->_port = $port;
}
if(!empty($username)){
$this->_userName = $username;
}
if(!empty($password)){
$this->_password = $password;
}
}
/**
* 設置郵件傳輸代理
* @param string $server 代理服務器的ip或者域名
* @param int $port 代理服務器的端口,smtp默認25號端口
* @param int $localPort 本地端口
* @return boolean
*/
public function setServer($server, $port=25) {
if(!isset($server) || empty($server) || !is_string($server)) {
$this->_errorMessage = "first one is an invalid parameter";
return false;
}
if(!is_numeric($port)){
$this->_errorMessage = "first two is an invalid parameter";
return false;
}
$this->_sendServer = $server;
$this->_port = $port;
return true;
}
/**
* 設置郵件
* @access public
* @param array $config 郵件配置信息
* 包含郵件發送人、接收人、主題、內容、郵件傳輸代理的驗證信息
* @return boolean
*/
public function setMailInfo($config) {
if(!is_array($config) || count($config) < 6){
$this->_errorMessage = "parameters are required";
return false;
}
$this->_from = $config['from'];
$this->_to = $config['to'];
$this->_subject = $config['subject'];
$this->_body = $config['body'];
$this->_userName = $config['username'];
$this->_password = $config['password'];
if(isset($config['isHTML'])){
$this->_isHTML = $config['isHTML'];
}
return true;
}
/**
* 發送郵件
* @access public
* @return boolean
*/
public function sendMail() {
$command = $this->getCommand();
$this->socket();
foreach ($command as $value) {
if($this->sendCommand($value[0], $value[1])) {
continue;
}
else{
return false;
}
}
$this->close(); //其實這里也沒必要關閉,smtp命令:QUIT發出之后,服務器就關閉了連接,本地的socket資源會自動釋放
echo 'Mail OK!';
return true;
}
/**
* 返回錯誤信息
* @return string
*/
public function error(){
if(!isset($this->_errorMessage)) {
$this->_errorMessage = "";
}
return $this->_errorMessage;
}
/**
* 返回mail命令
* @access protected
* @return array
*/
protected function getCommand() {
if($this->_isHTML) {
$mail = "MIME-Version:1.0\r\n";
$mail .= "Content-type:text/html;charset=utf-8\r\n";
$mail .= "FROM:test<" . $this->_from . ">\r\n";
$mail .= "TO:<" . $this->_to . ">\r\n";
$mail .= "Subject:" . $this->_subject ."\r\n\r\n";
$mail .= $this->_body . "\r\n.\r\n";
}
else{
$mail = "FROM:test<" . $this->_from . ">\r\n";
$mail .= "TO:<" . $this->_to . ">\r\n";
$mail .= "Subject:" . $this->_subject ."\r\n\r\n";
$mail .= $this->_body . "\r\n.\r\n";
}
$command = array(
array("HELO sendmail\r\n", 250),
array("AUTH LOGIN\r\n", 334),
array(base64_encode($this->_userName) . "\r\n", 334),
array(base64_encode($this->_password) . "\r\n", 235),
array("MAIL FROM:<" . $this->_from . ">\r\n", 250),
array("RCPT TO:<" . $this->_to . ">\r\n", 250),
array("DATA\r\n", 354),
array($mail, 250),
array("QUIT\r\n", 221)
);
return $command;
}
/**
* @access protected
* @param string $command 發送到服務器的smtp命令
* @param int $code 期望服務器返回的響應嗎
* @param boolean
*/
protected function sendCommand($command, $code) {
echo 'Send command:' . $command . ',expected code:' . $code . '<br />';
//發送命令給服務器
try{
if(socket_write($this->_socket, $command, strlen($command))){
//讀取服務器返回
$data = trim(socket_read($this->_socket, 1024));
echo 'response:' . $data . '<br /><br />';
if($data) {
$pattern = "/^".$code."/";
if(preg_match($pattern, $data)) {
return true;
}
else{
$this->_errorMessage = "Error:" . $data . "|**| command:";
return false;
}
}
else{
$this->_errorMessage = "Error:" . socket_strerror(socket_last_error());
return false;
}
}
else{
$this->_errorMessage = "Error:" . socket_strerror(socket_last_error());
return false;
}
}catch(Exception $e) {
$this->_errorMessage = "Error:" . $e->getMessage();
}
}
/**
* 建立到服務器的網絡連接
* @access private
* @return boolean
*/
private function socket() {
if(!function_exists("socket_create")) {
$this->_errorMessage = "extension php-sockets must be enabled";
return false;
}
//創建socket資源
$this->_socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
if(!$this->_socket) {
$this->_errorMessage = socket_strerror(socket_last_error());
return false;
}
//連接服務器
if(!socket_connect($this->_socket, $this->_sendServer, $this->_port)) {
$this->_errorMessage = socket_strerror(socket_last_error());
return false;
}
socket_read($this->_socket, 1024);
return true;
}
/**
* 關閉socket
* @access private
* @return boolean
*/
private function close() {
if(isset($this->_socket) && is_object($this->_socket)) {
$this->_socket->close();
return true;
}
$this->_errorMessage = "no resource can to be close";
return false;
}
}
/**************************** Test ***********************************/
$config = array(
"from" => "XXXXX",
"to" => "XXXXX",
"subject" => "test",
"body" => "<b>test</b>",
"username" => "XXXXX",
"password" => "******",
//"isHTML" => true
);
$mail = new MySendMail();
$mail->setServer("smtp.126.com");
$mail->setMailInfo($config);
if(!$mail->sendMail()) {
echo $mail->error();
return 1;
}

 

希望本文所述對大家的php程序設計有所幫助。

分享:PHP 使用memcached簡單示例分享
在很多場合,我們都會聽到 memcached 這個名字,但很多同學只是聽過,并沒有用過或實際了解過,只知道它是一個很不錯的東東。這里簡單介紹一下,memcached 是高效、快速的分布式內存對象緩存系統,主要用于加速WEB動態應用程序。今天我們就先來簡單探討下memcached的用

來源:模板無憂//所屬分類:PHP教程/更新時間:2015-03-07
相關PHP教程
亚洲 欧美 激情 小说 另类| 亚洲v日本v欧美v久久精品| 岛国av在线一区| 97久久精品人人澡人人爽| 欧美视频13p| 欧美日本中文字幕| 视频一区三区| 亚洲欧美色图视频| 国内精品偷拍视频| 欧美成人milf| 国产欧美一区二区精品秋霞影院| 精品欧美乱码久久久久久| 国产精品色视频| 乱妇乱女熟妇熟女网站| 日韩成人毛片视频| 国产a亚洲精品| 视频在线观看一区| 婷婷亚洲久悠悠色悠在线播放| www.欧美三级电影.com| 欧美另类高清视频在线| 色婷婷精品久久二区二区密| 精品人妻一区二区三区日产乱码| 97色伦图片97综合影院| 一区二区三区精密机械公司| 久久天天躁狠狠躁夜夜躁2014| 日韩福利在线| 天天躁夜夜躁狠狠是什么心态| 亚洲欧美韩国| 鲁大师影院一区二区三区| 亚洲综合一二区| 日本午夜人人精品| 北条麻妃视频在线| 国产精品午夜一区二区| 成人在线免费观看网站| 欧美国产日韩亚洲一区| 久久久噜噜噜久久久| 成年人看的毛片| 久久精品女人毛片国产| 盗摄系列偷拍视频精品tp| 成人在线综合网站| 精品国产一区二区三区久久狼黑人| 免费无遮挡无码永久视频| 国产视频aaa| 国内精品嫩模av私拍在线观看| 夜夜嗨av一区二区三区网页| 国产精品一区二区三| 国产欧美激情视频| 亚洲成人一级片| 国产日韩欧美三区| 在线看国产一区二区| 国产精品嫩草视频| 欧美 日本 国产| 欧美尿孔扩张虐视频| 久久久精品日韩欧美| 中国日韩欧美久久久久久久久| 亚洲高清视频一区| 国产性xxxx| 国产精品99在线观看| 亚洲一区二区在线观看视频| 性色av香蕉一区二区| 超碰97人人射妻| 日韩精选在线观看| 欧美在线精品一区| 亚洲一卡二卡三卡四卡| 96sao精品视频在线观看| 男女一区二区三区| 大桥未久女教师av一区二区| 久久先锋资源网| xxx成人少妇69| 中日韩av在线播放| 欧美 日韩 国产 成人 在线 91| 国产日韩一区二区三区在线播放| 欧美不卡一二三| 99久久免费观看| 久久久久在线视频| 欧美freesex交免费视频| 91麻豆精品91久久久久久清纯| 国产精品swag| 一级特黄曰皮片视频| 97人人澡人人爽91综合色| 一区二区三区在线影院| 国产成人精品电影久久久| 人妻换人妻仑乱| 精品国产欧美日韩一区二区三区| 国产精品一品视频| 一二美女精品欧洲| 黄色片网址在线观看| 91免费视频播放| 丝袜美腿亚洲综合| 综合136福利视频在线| 午夜激情视频网| 国产成人77亚洲精品www| 中文字幕中文字幕一区| 日韩免费在线视频| 国产馆在线观看| 女人av一区| 亚洲午夜视频在线| 国内精品久久国产| 福利所第一导航| 99久久综合| 欧美v国产在线一区二区三区| 亚洲 欧美 日韩 国产综合 在线| 你懂得影院夜精品a| 99精品视频一区二区三区| 国产成人精品日本亚洲| 亚洲色图27p| 激情婷婷综合| 精品久久久久久国产91| 日韩高清在线播放| 成 人 免费 黄 色| 国产欧美一区二区精品性色| 7777精品伊久久久大香线蕉语言| 国产成人在线网址| 在线观看视频日韩| 欧美成人精精品一区二区频| 欧美三级在线观看视频| 国产激情一区| 亚洲三级在线免费观看| 国产日本欧美视频| 人人妻人人澡人人爽| 欧美国产专区| 中文字幕日本欧美| 亚洲第一黄色网址| 沈樵精品国产成av片| 91麻豆精品国产91久久久久 | 中文字幕欧美人妻精品| 久久久久欧美精品| 色综合久久中文字幕综合网小说| 久久婷婷五月综合| 亚洲久久视频| 精品五月天久久| 免费日韩中文字幕| 国产成人精品一区二区三区视频| 亚洲观看高清完整版在线观看 | 日韩母乳在线| 性欧美大战久久久久久久久| 亚洲欧美丝袜| 欧美黄色网页| 国产精品久久三区| 91九色单男在线观看| 波多野结衣家庭教师| 秋霞电影一区二区| 欧美精品在线免费播放| 黄色av电影网站| 日本成人中文| 亚洲精品一区二区三区香蕉| 国产美女网站在线观看| 日韩精品一区二区三区免费视频| 亚洲成人av中文| 99久久99久久精品| 波多野结衣久久精品| 欧美国产禁国产网站cc| 亚洲在线观看视频| 国产又粗又大又黄| **欧美大码日韩| 激情伦成人综合小说| 丰满人妻一区二区三区四区| 久久色中文字幕| 欧美精品123| 精品日韩视频| 欧美午夜精品一区二区蜜桃| 97av中文字幕| 欧美日韩五区| 精品视频免费看| 91亚洲精品国产| 亚洲超碰在线观看| 亚洲第一级黄色片| 精品亚洲视频在线| 天天做综合网| 欧美激情一区二区三区高清视频| 扒开jk护士狂揉免费| 婷婷综合在线| 久久国产精品偷| 国产亚洲成人av| 激情综合网最新| 欧美一区二区色| 午夜爽爽爽男女免费观看| 国产一级一区二区| 日韩av电影在线免费播放| 中文字幕一二区| 亚洲精品菠萝久久久久久久| 91动漫在线看| 奇米狠狠一区二区三区| 久久精品国产亚洲7777| 国内精品久久99人妻无码| 欧美在线精品一区| 97激碰免费视频| 无码人妻一区二区三区线| 国产 日韩 欧美大片| 国产精品永久在线| a天堂在线视频| 欧美性猛交xxxxx水多| 日日噜噜噜噜久久久精品毛片| 粉嫩一区二区三区四区公司1| 337p日本欧洲亚洲大胆色噜噜| 屁屁影院国产第一页| 日韩不卡免费视频| 国产91|九色| 国产美女www爽爽爽| 亚洲一本大道在线| 91热这里只有精品| 亚洲天堂久久| 国产精品久久久久久影视| 精品欧美在线观看| 欧美性色综合网| 国产女人18毛片水真多18| 午夜精品久久| 日韩免费精品视频| av网站免费大全| 91黄色激情网站| 北条麻妃在线一区| 综合激情网站| 中文字幕亚洲国产| 18岁成人毛片| 欧美激情综合在线| 国产九色porny| 91不卡在线观看| 免费不卡欧美自拍视频| 国产欧美一区二区三区在线看蜜臂| www.成人在线| 精品在线视频一区二区三区| 97久久精品一区二区三区的观看方式 | 久久久久久久久久久久久久免费看 | 加勒比海盗1在线观看免费国语版| 人人网欧美视频| 欧美国产日韩一区二区| 免费在线黄色片| 国产成人免费视频精品含羞草妖精| 91久久久久久国产精品| 亚洲色大成网站www| 欧美成人伊人久久综合网| 欧洲成人午夜精品无码区久久| 欧美日韩精品| 久久久久久久久久久久久久久久久久av| 欧美一区二区三区网站| 亚洲第一av色| 中国男女全黄大片| 国产一区欧美日韩| 成人黄色在线免费观看| 人妻中文字幕一区| 日韩欧美不卡一区| 美女三级黄色片| 国产69精品久久99不卡| 永久免费精品视频网站| xxxx日韩| 欧美丰满少妇xxxx| 国产又大又粗又长| 亚洲成人av中文| 粗大的内捧猛烈进出视频| 国产一区日韩二区欧美三区| 伊人av成人| 国产精品精品| 亚洲www在线| 国产亚洲高清一区| 久久精品国产v日韩v亚洲| 中文字幕精品一区二| 欧美日韩亚洲综合在线 | 国内自拍视频在线播放| 婷婷久久综合九色综合伊人色| 熟女人妻一区二区三区免费看| 国产不卡视频一区| 欧美午夜小视频| av在线不卡免费观看| 欧美久久精品午夜青青大伊人| 99久久久无码国产精品免费| 91精品国产色综合久久ai换脸| bl动漫在线观看| 99在线热播精品免费| 国产精品国产亚洲精品看不卡| 国产日韩1区| 欧洲av一区| 国产美女撒尿一区二区| 国模精品视频一区二区| 亚洲 欧美 激情 另类| 国产一区二区激情| 国产 日韩 欧美 成人| 欧美日韩激情视频| 欧美体内she精高潮| 丁香婷婷综合五月| 欧美激情国产精品日韩| 欧美a级理论片| 超碰人人爱人人| 99在线观看免费视频精品观看| 国产色综合天天综合网 | 欧美一级片一区| 国产精品久久久久久妇女| 欧美成人午夜激情视频| 亚洲欧洲国产综合| 视频在线观看一区二区| 国产精品久免费的黄网站| 欧美丝袜丝nylons| 国产一级做a爰片在线看免费| 91久久精品网| 麻豆changesxxx国产| 欧美网站在线观看| 中文字幕黄色网址| 亚洲一区在线观看视频| 久久久久久国产免费a片| 一区二区三区影院| 熟女俱乐部一区二区| 一区二区三区四区不卡在线| 亚洲天堂久久新| 亚洲三级免费电影| 一本加勒比北条麻妃| 亚洲一区二区黄色| 亚洲不卡的av| 欧美午夜电影在线| 外国一级黄色片| 欧美探花视频资源| 在线观看黄网站| 狠狠久久亚洲欧美专区| 日本黄色录像视频| 欧洲精品在线观看| 久久婷婷国产麻豆91| 欧美日韩一区三区四区| 国产a∨精品一区二区三区仙踪林| 在线播放91灌醉迷j高跟美女| 伊人中文字幕在线观看| 亚洲а∨天堂久久精品9966| 一级爱爱免费视频| 欧美一区二区三区在| 日本中文字幕第一页| 精品国产一区二区亚洲人成毛片| 性色av一区二区三区四区| 亚洲高清久久网| 精品国产伦一区二区三| 色综合伊人色综合网站| 日韩成人影音| 欧美专区在线视频| 91在线成人| 国产91精品久久久久久| 一区二区日韩| 91精品国产电影| 欧美精品高清| 7777精品久久久久久| 91午夜精品| 北条麻妃高清一区| 在线电影一区二区| 一区国产精品| 极品少妇xxxx精品少妇偷拍 | 国产69精品久久777的优势| 91小视频在线播放| 成人欧美一区二区三区白人| 69xxx免费| 欧美伊人久久久久久午夜久久久久| 九九精品免费视频| 亚洲色图第一页| 99热这里只有精| 久久天天躁狠狠躁夜夜躁2014| 九七电影院97理论片久久tvb| 九九热这里只有在线精品视| 亚洲精品无播放器在线播放| 久久人人97超碰精品888| 中文在线综合| 国产精品一区二区三区不卡| 免费看成人吃奶视频在线| 国产尤物91| 久久久天天操| 91av俱乐部| 中文一区二区在线观看| 国产不卡在线观看视频| 337p亚洲精品色噜噜噜| 99久久精品国产成人一区二区 | 久久久久xxxx| 悠悠色在线精品| 国产精品999久久久| 日韩大陆欧美高清视频区| 国产又粗又猛又黄| 欧美www在线| 久9re热视频这里只有精品| 国产在线拍揄自揄视频不卡99| 国产精品videosex性欧美| 特级毛片在线免费观看| 欧美亚洲视频| 国产精品啪啪啪视频| 高清av一区二区| 国产精品边吃奶边做爽| 一本大道av一区二区在线播放| 麻豆视频在线观看| 亚洲福利视频在线| 精品欧美日韩精品| 亚洲伊人成综合成人网| 在线一区欧美| 日本激情视频在线播放| 久久午夜羞羞影院免费观看| 黄色三级生活片| 日韩欧美亚洲国产另类| 国产精品一区二区av影院萌芽| 国产免费一区视频观看免费| 国产精品www.| 毛葺葺老太做受视频| 亚洲精品午夜久久久| 中文字幕观看av| 亚洲精品一区在线观看| 日韩精选视频| 成人91免费视频| 日韩高清欧美激情| 麻豆短视频在线观看| 欧美性受xxxx黑人xyx性爽| 亚洲男人天堂久久|