一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

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教程
99热只有这里有精品| 亚洲成av人片在线观看香蕉| 欧美少妇一级片| 日韩欧美色电影| 永久免费看黄网站| 精品少妇一区二区30p| 欧美日韩成人综合在线一区二区| 韩国v欧美v日本v亚洲v| 在线观看亚洲色图| 91精品国产一区二区三区| 影音先锋国产资源| 99久久国产精| 精品免费国产一区二区| 亚洲7777| 久久的精品视频| 免费成人在线观看| www.99热| 2021国产视频| 欧美一区二区三区影视| 国产成人亚洲欧洲在线| 四虎成人免费影院| 在线观看国产福利| 国产精品午夜av在线| 91精品在线观看入口| 狠狠人妻久久久久久综合蜜桃| 成人免费视频观看视频| 亚洲欧洲国产精品| 亚洲人成人99网站| 日韩欧美三级视频| 人妻换人妻a片爽麻豆| 视频一区国产精品| 色综合色综合网色综合| 亚洲韩国精品一区| 国产口爆吞精一区二区| 人妖精品videosex性欧美| 日韩欧美成人激情| 中文成人综合网| 人妻一区二区三区| 婷婷激情五月网| youjizz在线视频| 亚洲精品高清视频| 777久久久精品| 国产精品久久久久久69| 亚洲淫片在线视频| 中文字幕欧美三区| 国产精品视频第一页| 精品无码在线视频| 亚洲爆乳无码专区| 色哟哟精品观看| www.久久久久久| 粉嫩在线一区二区三区视频| 91蜜桃视频在线| 国产亚洲一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品一区二区三区影院忠贞| 日韩伦理在线免费观看| 久久婷婷开心| 欧美精品在线播放| 亚洲国产aⅴ天堂久久| 中文字幕精品一区二| 日韩激情视频在线观看| 欧美国产在线看| 污视频在线观看免费网站| 国产精品国产亚洲精品看不卡| 欧洲国产伦久久久久久久| 国产欧美日韩在线观看| 中文字幕在线观看一区二区| 日韩欧美卡一卡二| 91精品国产99久久久久久| 日韩欧美国产三级电影视频| 精品久久中文字幕| 国产欧美一区二区精品久导航| a天堂视频在线观看| av色综合网| 欧美午夜久久久| 看电视剧不卡顿的网站| 91看片就是不一样| 午夜精品一区二区三区av| 久久精品一区二区三区四区| 亚洲电影中文字幕在线观看| 欧美日韩一二三| 中文字幕av一区二区| 99re国产在线播放| 亚洲视频第二页| 岛国片在线免费观看| 丰满大乳国产精品| 91首页免费视频| 国产午夜精品理论片a级大结局| 亚洲青青青在线视频| 亚洲午夜一二三区视频| 欧美午夜精品久久久| 日韩欧美国产一二三区| 亚洲欧美中文日韩在线v日本| 精品毛片乱码1区2区3区| 亚洲专区一二三| 欧美日韩国产一二三| 亚洲黄色av网站| 久久99青青精品免费观看| 日日骚久久av| 日韩女优制服丝袜电影| 欧美午夜电影网| 欧美理论片在线| 亚洲精品国产精品久久清纯直播| caoporn国产精品| 精品人妻一区二区三区麻豆91| 国产亚洲精久久久久久| 欧美一区二区大片| 性感美女久久精品| 欧美三级三级三级| www.日韩视频| 亚洲综合网站在线观看| 日韩欧美一区二区在线视频| 欧美黑人一级爽快片淫片高清| 亚洲高清在线观看一区| 亚洲色图日韩精品| 久久亚洲一区二区三区四区| 亚洲免费视频网站| 亚洲精品免费网站| 亚洲精品在线观看免费| 亚洲一区二区三区精品视频| 看欧美ab黄色大片视频免费 | 深爱激情五月婷婷| 欧美精品二区三区| 毛片视频网站在线观看| 国产婷婷一区二区| 欧美色大人视频| 日韩免费电影网站| 国产不卡精品视男人的天堂| 久久精品国产欧美亚洲人人爽| 久久夜精品香蕉| 亚洲第一区在线| 美乳视频一区二区| 国产一级视频在线| 亚洲一区二区三区中文字幕| 国产精品第一视频| 少妇特黄一区二区三区| 欧美在线 | 亚洲| 91美女在线视频| 亚洲一区二区四区蜜桃| 亚洲精品在线免费播放| 欧美激情视频一区二区| 97久久国产亚洲精品超碰热 | 国产又黄又大又粗的视频| 国产精品50页| 国产黄色录像视频| 懂色av懂色av粉嫩av| 蜜桃av一区| 亚洲综合色区另类av| 欧美天天综合色影久久精品| 欧美激情影音先锋| 亚洲精品视频三区| 国产午夜精品一区二区| 91影视免费在线观看| 天堂网中文字幕| 亚洲大片一区二区三区| 成人高清视频观看www| 91精品91久久久中77777老牛| 水蜜桃av无码| 一级aaaa毛片| 国产欧美综合色| 曰本色欧美视频在线| 91老司机精品视频| 国产精品aaaa| 91牛牛免费视频| 久久久久网址| 中文字幕免费在线不卡| 欧美一区二区免费在线观看| www.av网站| 久久精品这里都是精品| 国产成人无码av| 成人激情综合网站| 亚洲欧美激情四射在线日| 91久久在线播放| 在线能看的av网站| 高潮毛片又色又爽免费| 国产拍揄自揄精品视频麻豆| 中文字幕欧美激情一区| 国产精品乱码久久久久久| 狠狠色狠狠色综合日日小说| 欧美日高清视频| 国产一区二区三区网站| 欧美日韩成人免费视频| 一卡二卡在线观看| k8久久久一区二区三区| 九九精品视频在线| 欧美性生交xxxxx| 日本一区二区不卡视频| 欧美日韩一区在线播放 | 91精选在线观看| 日韩在线观看电影完整版高清免费| 少妇欧美激情一区二区三区| 日本成人中文字幕| 在线观看国产一区二区| 欧美又大又粗又长| 相泽南亚洲一区二区在线播放 | 久久国产精品免费| 久久影院在线观看| 日本爱爱免费视频| 久久精品官网| 超碰97人人做人人爱少妇| 久久国产精品久久精品| 佐佐木明希电影| k8久久久一区二区三区| 欧美亚洲一区在线| 国产麻豆免费视频| 日本91av在线播放| av网站免费大全| 欧美在线xxx| 亚洲色图综合区| 欧美日韩性生活视频| 国产精品美腿一区在线看| 少妇一级黄色片| 一二三区精品视频| 日韩欧美精品在线不卡| 日本熟妇成熟毛茸茸| 国产亚洲欧美一区在线观看| 日韩在线观看成人| 美女福利视频网| 欧美日韩美少妇| 国产精品一区二区欧美黑人喷潮水 | 性生交大片免费全黄| 欧美 日韩 国产 成人 在线 91| 精品精品国产高清一毛片一天堂| 国产激情片在线观看| 日本不卡视频一二三区| 国产精品美女黄网| 国产iv一区二区三区| 中文精品一区二区三区| 国产福利一区二区三区| 色婷婷777777仙踪林| 日韩电影在线一区| 欧美夫妻性生活xx| 国产乱女淫av麻豆国产| av高清久久久| 亚洲高清资源综合久久精品| 久久久久久久久久久99999| 日本中文字幕在线视频观看| 国产精品一级黄| 中文字幕在线精品| av无码一区二区三区| 国产成人免费视频| 欧美一区二区大片| 乱子伦视频在线看| 夜夜精品视频一区二区| 不卡影院一区二区| 日韩欧美一区视频| 国产精品无码久久久久一区二区| 欧美男同性恋视频网站| 久久人妻一区二区| 亚洲激情小视频| 午夜国产小视频| 亚洲电影免费观看高清完整版在线观看 | 精品一区二区三区日韩| 黑人巨大精品欧美一区二区一视频 | 狠狠色狠狠色综合系列| 91精品国产乱| 正义之心1992免费观看全集完整版| 国产黄色小视频网站| 中文字幕一区二区三区不卡| 浮妇高潮喷白浆视频| 国产高清精品久久久久| 国模精品一区二区三区| 免费高清在线视频一区·| 精品国产乱码久久久久久牛牛 | 欧美精品一区二区三区在线播放| www欧美com| 久久精品成人动漫| 亚洲av综合一区二区| 亚洲精选一区二区| 欧美黄色免费看| 伊人久久大香线蕉av一区二区| aaaaaav| 精品久久久久久久久国产字幕| 凹凸国产熟女精品视频| 国产成人aaa| 国产美女搞久久| 波多野结衣家庭教师| 欧美日韩二区三区| 国产青青在线视频| 国产清纯在线一区二区www| 国产精品视频播放| 国产福利视频网站| 欧美久久久久中文字幕| 精品在线小视频| 动漫av免费观看| 亚洲超碰精品一区二区| 久久无码高潮喷水| 亚洲一区二区三区在线看| 国产自偷自偷免费一区| 亚洲一区二区三区四区不卡| 高清无码一区二区在线观看吞精| 国产一区高清在线| 亚洲va欧美va在线观看| 精品人妻一区二区三区含羞草 | 亚洲精品伦理在线| 国产精品一区二区三区精品| 国产毛片久久久久| 亚洲欧美日韩中文在线| 五月婷婷六月丁香激情| 9人人澡人人爽人人精品| 91色在线视频| 亚洲一区中文字幕永久在线| 日韩国产激情在线| 青娱乐国产精品视频| 中文字幕+乱码+中文字幕一区| 日韩少妇中文字幕| av欧美精品.com| 国产精品久久7| 久久精品99久久久| 97se亚洲综合在线| 国产成人精品一区二三区| 欧美色综合久久| 国产精品无码久久久久久| 懂色av中文一区二区三区天美| 男人添女人下部高潮视频在观看| 国产在线精品免费| 国产人妻互换一区二区| 亚洲视频综合在线| 亚洲av无码一区二区三区网址| 亚洲乱码国产乱码精品精| 中文字幕影音先锋| 久热99视频在线观看| 在线播放亚洲精品| 亚洲综合中文字幕在线| 天堂在线观看av| 在线国产精品播放| 99久久99久久精品国产| 精品对白一区国产伦| 久久久国产精品久久久| 一区二区三区视频观看| av在线不卡免费看| 久久久福利影院| 精品久久久久久亚洲国产300| 嘿嘿视频在线观看| 91亚洲va在线va天堂va国 | 中文一区一区三区高中清不卡| 最新中文字幕久久| 免费成人在线观看| 国产精品视频一区二区三区经| 久久国产欧美日韩精品| 精品日本一区二区三区| 国产福利一区二区三区视频 | 欧美老肥妇做.爰bbww| 伊人色在线观看| 欧美视频一区二| 玖草视频在线观看| 日韩精品欧美国产精品忘忧草 | 亚洲图片欧美在线| 国产精品久久久亚洲| 国产成年妇视频| 亚洲一区美女视频在线观看免费| 成人av网站在线观看免费| 91成人在线视频观看| 在线欧美日韩国产| 成人在线观看免费高清| 精品成人在线观看| 黄色一级片免费在线观看| 91精品视频在线| 久久黄色级2电影| 欧美二区在线视频| 亚洲欧美日韩精品久久亚洲区| 狠狠色丁香久久婷婷综合_中 | 日韩大片免费在线观看| 亚洲一区二区三区视频| 亚洲精品国产a| 欧美极品aaaaabbbbb| 国产精品国产一区二区| 国产婷婷一区二区| 波多野结衣与黑人| 91久久精品国产91性色tv| 免费又黄又爽又色的视频| 国产一区二区三区色淫影院| 亚洲免费电影在线观看| 亚洲成av人片在线观看无码| 免费a视频在线观看| 一女三黑人理论片在线| 91黄色在线看| 成人国产精品日本在线| 欧美性猛交xxxx黑人| 国产乱淫av免费| 无码人妻精品一区二区蜜桃百度 | 国产日韩欧美二区| 中文字幕在线不卡一区| 亚洲最大成人综合网| 久久99亚洲精品| 成人免费av网站| 国产在线视频三区| 最近2019中文免费高清视频观看www99 | 久久久噜噜噜久久人人看 | 日韩欧美国产综合| 狠狠色丁香久久婷婷综| 免费观看a级片| 91九色丨porny丨国产jk| 91视频99| 国产精品91在线| 欧美一区二区久久| 午夜福利视频一区二区| 久久久久久国产精品视频 | 麻豆极品一区二区三区| 最新日韩免费视频| a级黄色片网站| 日韩美女在线看| 日韩一级二级三级| 国产精品三级在线观看| 国产精品国产精品国产| 亚洲一区免费看| 97香蕉超级碰碰久久免费的优势| 亚州成人在线电影| 精品久久无码中文字幕| 男人的天堂av网|