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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用Socket發(fā)送電子郵件(php)

2019-09-10 09:07:03
字體:
供稿:網(wǎng)友

用Socket發(fā)送電子郵件

作者:limodou

  在作者所申請(qǐng)的幾個(gè)PHP 主頁(yè)空間中,能夠提供mail功能的實(shí)在不多,總是調(diào)用完mail()函數(shù)之后就毫
無(wú)下文了。但是電子郵件在網(wǎng)上生活中的作用越來越大。想一想網(wǎng)蟲上網(wǎng)不收郵件能叫真正的網(wǎng)蟲嗎?郵件
的作用我不想再說了,但是如果主頁(yè)空間不支持mail()發(fā)送那么怎么辦呢?我也想過通過socket來實(shí)現(xiàn)郵件
發(fā)送,但無(wú)奈對(duì)用php 進(jìn)行socket編程不熟悉,再加上發(fā)送郵件要用到SMTP協(xié)議,又要讀不少的英文了,所
以一直也沒有去研究過。終于有一天我發(fā)現(xiàn)了一篇文章,關(guān)于用socket編程發(fā)送郵件。我如獲至寶般將其拷
貝下來,并且將其改造成了一個(gè)php 可用的類,供大家使用。原來的文章只是一個(gè)簡(jiǎn)單的例子,而且還有一
些錯(cuò)誤,在我經(jīng)過多次的實(shí)驗(yàn)、改造終于將其改成了一個(gè)直接使用socket,向指定的郵箱發(fā)送郵件的類,如
果大家和前面關(guān)于發(fā)送MIME的文章結(jié)合起來,就可以實(shí)現(xiàn)在不支持mail()函數(shù)的網(wǎng)站上發(fā)送郵件了。因?yàn)榘l(fā)
送郵件的過程需要時(shí)間,可能與mail()的處理機(jī)制還不完全一樣,所以速度要慢一些,但是可以解決需要發(fā)
送郵件功能的燃眉之急,同時(shí)你也可以學(xué)習(xí)用php 進(jìn)行socket編程。下面就將這個(gè)類的實(shí)現(xiàn)原理介紹給大家,
同時(shí)向大家講解一些關(guān)于SMTP的基本知識(shí)。

Socket編程介紹
  向大家申明,本人不是一個(gè)TCP/IP編程專家,故在此只是講出了我的一點(diǎn)理解和體會(huì)。

  使用fsockopen函數(shù)打開一個(gè)Internet連接,函數(shù)語(yǔ)法格式:

int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

  參數(shù)的意思我想不用講了,這里由于要使用SMTP協(xié)議,所以端口號(hào)為25。在打開連接成功后,會(huì)返回一
個(gè)socket句柄,使用它就可以象使用文件句柄一樣的。可使用的操作有fputs(),fgets(),feof(),fclose()
等。

  很簡(jiǎn)單地介紹就到這里吧。

SMTP的基礎(chǔ)
  基于TCP/IP的因特網(wǎng)協(xié)議一般的命令格式都是通過請(qǐng)求/ 應(yīng)答方式實(shí)現(xiàn)的,采用的都是文本信息,所以
處理起來要容易一些。SMTP是簡(jiǎn)單郵件傳輸協(xié)議的簡(jiǎn)稱,它可以實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送郵件的功能。所以
下面所講的命令是指客戶端向服務(wù)器發(fā)出請(qǐng)求指令,而響應(yīng)則是指服務(wù)器返回給客戶端的信息。

  SMTP分為命令頭和信息體兩部分。命令頭主要完成客戶端與服務(wù)器的連接,驗(yàn)證等。整個(gè)過程由多條命
令組成。每個(gè)命令發(fā)到服務(wù)器后,由服務(wù)器給出響應(yīng)信息,一般為3 位數(shù)字的響應(yīng)碼和響應(yīng)文本。不同的服
務(wù)器返回的響應(yīng)碼是遵守協(xié)議的,但是響應(yīng)正文本則不必。每個(gè)命令及響應(yīng)的最后都有一個(gè)回車符,這樣使
用fputs()和fgets()就可以進(jìn)行命令與響應(yīng)的處理了。SMTP的命令及響應(yīng)信息都是單行的。信息體則是郵件
的正文部分,最后的結(jié)束行應(yīng)以單獨(dú)的"."作為結(jié)束行。

  客戶端一些常用的SMTP指令為:

HELO hostname: 與服務(wù)器打招呼并告知客戶端使用的機(jī)器名字,可以隨便填寫
MAIL FROM: sender_id : 告訴服務(wù)器發(fā)信人的地址
RCPT TO: receiver_id : 告訴服務(wù)器收信人的地址
DATA : 下面開始傳輸信件內(nèi)容,且最后要以只含有.的特殊行結(jié)束
RESET: 取消剛才的指令,從新開始
VERIFY userid: 校驗(yàn)帳號(hào)是否存在(此指令為可選指令,服務(wù)器可能不支持)
QUIT : 退出連接,結(jié)束
  服務(wù)器返回的響應(yīng)信息為(格式為:響應(yīng)碼+空格+解釋):

220 服務(wù)就緒(在socket連接成功時(shí),會(huì)返回此信息)
221 正在處理
250 請(qǐng)求郵件動(dòng)作正確,完成(HELO,MAIL FROM,RCPT TO,QUIT指令執(zhí)行成功會(huì)返回此信息)
354 開始發(fā)送數(shù)據(jù),結(jié)束以 .(DATA指令執(zhí)行成功會(huì)返回此信息,客戶端應(yīng)發(fā)送信息)
500 語(yǔ)法錯(cuò)誤,命令不能識(shí)別
550 命令不能執(zhí)行,郵箱無(wú)效
552 中斷處理:用戶超出文件空間
  下面給出一個(gè)簡(jiǎn)單的命令頭(這是在打開socket之后做的),是我向stmp.263.net發(fā)郵件的測(cè)試結(jié)果:

HELO limodou
250 smtp.263.net
MAIL FROM: chatme@263.net
250 Ok
RCPT TO: chatme@263.net
250 Ok
DATA
354 End data with .
To: chatme@263.net
From: chatme@263.net
Subject: test
From: chatme@263.net
test
.
QUIT
250 Ok: queued as C46411C5097E0

  這就是一些SMTP的簡(jiǎn)單知識(shí)。相關(guān)內(nèi)容可以查閱RFC。

RFC 821定義了收/發(fā)電子郵件的相關(guān)指令。
RFC 822則制定了郵件?熱蕕母袷健?
RFC 2045-2048制定了多媒體郵件?熱蕕母袷劍?
RFC 1113, 1422-1424則是討論如何增進(jìn)電子郵件的保密性。

send_mail類的實(shí)現(xiàn)
  現(xiàn)在開始介紹我所編寫的發(fā)送郵件類。有了上面的預(yù)備知識(shí)了,下面就是實(shí)現(xiàn)了。

類的成員變量

var $lastmessage; //記錄最后返回的響應(yīng)信息
var $lastact; //最后的動(dòng)作,字符串形式
var $welcome; //用在HELO后面,歡迎用戶
var $debug; //是否顯示調(diào)試信息
var $smtp; //smtp服務(wù)器
var $port; //smtp端口號(hào)
var $fp; //socket句柄

  其中,$lastmessage和$lastact用于記錄最后一次響應(yīng)信息及執(zhí)行的命令,當(dāng)出錯(cuò)時(shí),用戶可以使用它
們。為了測(cè)試需要,我還定義了$debug變量,當(dāng)其值為true時(shí),會(huì)在運(yùn)行過程中顯示一些執(zhí)行信息,否則無(wú)
任何輸出。$fp用于保存打開后的socket句柄。

類的構(gòu)造


--------------------------------------------------------------------------------
function send_mail($smtp, $welcome="", $debug=false)
{
if(empty($smtp)) die("SMTP cannt be NULL!");
$this->smtp=$smtp;
if(empty($welcome))
{
$this->welcome=gethostbyaddr("localhost");
}
else
$this->welcome=$welcome;
$this->debug=$debug;
$this->lastmessage="";
$this->lastact="";
$this->port="25";
}
--------------------------------------------------------------------------------
  這個(gè)構(gòu)造函數(shù)主要完成一些初始值的判定及設(shè)置。$welcome用于HELO指令中,告訴服務(wù)器用戶的名字。
HELO指令要求為機(jī)器名,但是不用也可以。如果用戶沒有給出$welcome,則自動(dòng)查找本地的機(jī)器名。

顯示調(diào)試信息

--------------------------------------------------------------------------------
1 function show_debug($message, $inout)
2 {
3 if ($this->debug)
4 {
5 if($inout=="in") //響應(yīng)信息
6 {
7 $m='<< ';
8 }
9 else
10 $m='>> ';
11 if(!ereg("$", $message))
12 $message .= "<br>";
13 $message=nl2br($message);
14 echo "<font color=#999999>${m}${message}</font>";
15 }
16 }
--------------------------------------------------------------------------------
  這個(gè)函數(shù)用來顯示調(diào)試信息。可以在$inout中指定是上傳的指令還是返回的響應(yīng),如果為上傳指令,則
使用"out";如果為返回的響應(yīng)則使用"in"。

第3行,判斷是否要輸出調(diào)試信息。
第5行,判斷是否為響應(yīng)信息,如果是,則在第7行將信息的前面加上"<< "來區(qū)別信息;否則在第10行加上
    ">> "來區(qū)別上傳指令。
第11-12行,判斷信息串最后是否為換行符,如不是則加上HTML換行標(biāo)記。第13行將所以的換行符轉(zhuǎn)成HTML
    的換行標(biāo)記。
第14行,輸出整條信息,同時(shí)將信息顏色置為灰色以示區(qū)別。

執(zhí)行一個(gè)命令


--------------------------------------------------------------------------------
1 function do_command($command, $code)
2 {
3 $this->lastact=$command;
4 $this->show_debug($this->lastact, "out");
5 fputs ( $this->fp, $this->lastact );
6 $this->lastmessage = fgets ( $this->fp, 512 );
7 $this->show_debug($this->lastmessage, "in");
8 if(!ereg("^$code", $this->lastmessage))
9 {
10 return false;
11 }
12 else
13 return true;
14 }
--------------------------------------------------------------------------------
  在編寫socket處理部分發(fā)現(xiàn),一些命令的處理很相似,如HELO,MAIL FROM,RCPT TO,QUIT,DATA命令,
都要求根據(jù)是否顯示調(diào)試信息將相關(guān)內(nèi)容顯示出來,同時(shí)對(duì)于返回的響應(yīng)碼,如果是期望的,則應(yīng)繼續(xù)處理,
如果不是期望的,則應(yīng)中斷出理。所以為了清晰與簡(jiǎn)化,專門對(duì)這些命令的處理編寫了一個(gè)通用處理函數(shù)。
函數(shù)的參數(shù)中$code為期望的響應(yīng)碼,如果響應(yīng)碼與之相同則表示處理成功,否則出錯(cuò)。

第3行,記錄最后執(zhí)行命令。
第4行,將上傳命令顯示出來。
第5行,則使用fputs真正向服務(wù)器傳換指令。
第6行,從服務(wù)器接收響應(yīng)信息將放在最后響應(yīng)消息變量中。
第7行,將響應(yīng)信息顯示出來。
第8行,判斷響應(yīng)信息是否期待的,如果是則第13行返回成功(true),否則在第10行返回失敗(false)。

  這樣,這個(gè)函數(shù)一方面完成指令及信息的發(fā)送顯示功能,別一方面對(duì)返回的響應(yīng)判斷是否成功。

郵件發(fā)送處理

  下面是真正的秘密了,可要看仔細(xì)了。:)

--------------------------------------------------------------------------------
1 function send( $to,$from,$subject,$message)
2 {
3
4 //連接服務(wù)器
5 $this->lastact="connect";
6
7 $this->show_debug("Connect to SMTP server : ".$this->smtp, "out");
8 $this->fp = fsockopen ( $this->smtp, $this->port );
9 if ( $this->fp )
10 {
11
12 set_socket_blocking( $this->fp, true );
13 $this->lastmessage=fgets($this->fp,512);
14 $this->show_debug($this->lastmessage, "in");
15
16 if (! ereg ( "^220", $this->lastmessage ) )
17 {
18 return false;
19 }
20 else
21 {
22 $this->lastact="HELO " . $this->welcome . "";
23 if(!$this->do_command($this->lastact, "250"))
24 {
25 fclose($this->fp);
26 return false;
27 }
28
29 $this->lastact="MAIL FROM: $from" . "";
30 if(!$this->do_command($this->lastact, "250"))
31 {
32 fclose($this->fp);
33 return false;
34 }
35
36 $this->lastact="RCPT TO: $to" . "";
37 if(!$this->do_command($this->lastact, "250"))
38 {
39 fclose($this->fp);
40 return false;
41 }
42
43 //發(fā)送正文
44 $this->lastact="DATA";
45 if(!$this->do_command($this->lastact, "354"))
46 {
47 fclose($this->fp);
48 return false;
49 }
50
51 //處理Subject頭
52 $head="Subject: $subject";
53 if(!empty($subject) && !ereg($head, $message))
54 {
55 $message = $head.$message;
56 }
57
58 //處理From頭
59 $head="From: $from";
60 if(!empty($from) && !ereg($head, $message))
61 {
62 $message = $head.$message;
63 }
64
65 //處理To頭
66 $head="To: $to";
67 if(!empty($to) && !ereg($head, $message))
68 {
69 $message = $head.$message;
70 }
71
72 //加上結(jié)束串
73 if(!ereg(".", $message))
74 $message .= ".";
75 $this->show_debug($message, "out");
76 fputs($this->fp, $message);
77
78 $this->lastact="QUIT";
79 if(!$this->do_command($this->lastact, "250"))
80 {
81 fclose($this->fp);
82 return false;
83 }
84 }
85 return true;
86 }
87 else
88 {
89 $this->show_debug("Connect failed!", "in");
90 return false;
91 }
92 }
--------------------------------------------------------------------------------
  有些意思很清楚的我就不說了。

  這個(gè)函數(shù)一共有四個(gè)參數(shù),分別是$to表示收信人,$from表示發(fā)信人,$subject表求郵件主題和$message
表示郵件體。如果處理成功則返回true,失敗則返回false。

第8行,連接郵件服務(wù)器,如果成功響應(yīng)碼應(yīng)為220。
第12行,設(shè)置阻塞模式,表示信息必須返回才能繼續(xù)。詳細(xì)說明看手冊(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不為空,則查找郵件體中是否有主題部分,如果沒有,則加上主題部分。
第59-63行,如果$from不為空,則查找郵件體中是否有發(fā)信人部分,如果沒有,則加上發(fā)信人部分。
第66-70行,如果$to不為空,則查找郵件體中是否有收信人部分,如果沒有,則加上收信人部分。
第73-74行,查找郵件體是否有了結(jié)束行,如果沒有則加上郵件體的結(jié)束行(以"."作為單獨(dú)的一行的特殊行)。
第76行,發(fā)送郵件體。
第78-83行,執(zhí)行QUIT結(jié)否與服務(wù)器的連接,期望響應(yīng)碼為250。
第85行,返回處理成功標(biāo)志(true)。
第81-91行,與服務(wù)器連接失敗的處理。

  以上為整個(gè)send_mail類的實(shí)現(xiàn),應(yīng)該不是很難的。下面給出一個(gè)實(shí)例。

郵件發(fā)送實(shí)例
  先給出一個(gè)最簡(jiǎn)單的實(shí)例:
--------------------------------------------------------------------------------
<?
1 include "sendmail.class.php3";
2 $email="Hello, this is a test letter!";
3 $sendmail=new send_mail("smtp.263.net", "limodou", true); //顯示調(diào)示信息
4 if($sendmail->send("chatme@263.net", "chatme@263.net", "test", $email))
5 {
6 echo "發(fā)送成功!<br>";
7 }
8 else
9 {
10 echo "發(fā)送失??!<br>";
11 }
?>
--------------------------------------------------------------------------------
第1行,裝入send_mail類。
第3行,創(chuàng)建一個(gè)類的實(shí)例,且設(shè)置顯示調(diào)示信息,如果不想顯示,可以
    $sendmail=new send_mail("smtp.263.net");。
第4行,發(fā)送郵件。


很簡(jiǎn)單,不是嗎?下面再給合以前的發(fā)送MIME郵件的例子,給出一個(gè)發(fā)送HTML附件的例子。

--------------------------------------------------------------------------------
<?php

include "MIME.class.php3";
//注,在發(fā)送MIME郵件一文中,這個(gè)類文件名為MIME.class,在此處我改成這樣的

$to = 'chatme@263.net'; //改為收信人的郵箱
$str = "Newsletter for ".date('M Y', time());

//信息被我改少了
$html_data = '<html><head><title>'. $str. '</title></head>
<body bgcolor="#ffffff">
Hello! This is a test!
</body>
</html>';

//生成MIME類實(shí)例
$mime = new MIME_mail("chatme@263.net", $to, $str);

//添加HTML附件
$mime->attach($html_data, "", HTML, BASE64);

//注釋掉,采用我的發(fā)送郵件處理
//$mime->send_mail();

//生成郵件
$mime->gen_email();

//顯示郵件信息
//echo $mime->email."<br>";

//包含sendmail文件
include "sendmail.class.php3";

//創(chuàng)建實(shí)例
$sendmail=new send_mail("smtp.263.net", "limodou", true);

//發(fā)送郵件
$sendmail->send("chatme@263.net", "chatme@263.net", $str, $mime->email);

?>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

欧美男男gaytwinkfreevideos| 香蕉成人在线| 1234区中文字幕在线观看| 精品一区二区三区在线| 26uuu亚洲| 亚洲美女色禁图| 亚洲最新av在线| 在线观看91久久久久久| 六月婷婷中文字幕| 久久久久国产精品区片区无码| 国产视频第一页在线观看| 欧美午夜宅男影院在线观看| 欧美日韩高清影院| 亚洲国产精品99久久| 成人av在线播放| 国产亚洲色婷婷久久99精品| 国产精品视频内| 91亚洲视频| 久久久久久免费| 久久精品一区二区不卡| av漫画在线观看| 欧美亚洲另类久久综合| 夜夜春成人影院| 蜜桃精品噜噜噜成人av| 91超薄肉色丝袜交足高跟凉鞋| 精品亚洲一区二区三区在线观看| 深夜视频一区二区| 中文字幕欧美日本乱码一线二线| 欧美性猛交xxxx免费看手交| 精品国产一二三| 2019亚洲日韩新视频| 欧美丝袜激情| 亚洲宅男网av| 美女高潮网站| 国产乱人伦丫前精品视频| 国产黄色网页| 日韩欧美福利视频| 一区二区免费| 三级电影在线看| 麻豆久久一区| 国产一区二区视频免费| 亚洲+变态+欧美+另类+精品| 秋霞av在线| 91豆花精品一区| 亚洲国产99精品国自产| 中文字幕一区在线| 成人爽a毛片免费啪啪| 天天影视色香欲综合网天天录日日录| 91在线高清观看| 亚洲最新无码中文字幕久久| 国产手机在线视频| 国产精品九九久久久久久久| 国产成人1区| 欧美精品一区二区免费| 国产美女久久精品香蕉69| 999精品网站| 欧美一区综合| 麻豆91小视频| 国产女人av| 国产激情在线视频| 久久精品亚洲一区二区| av播放在线观看| 久久国内精品视频| 欧美性色黄大片| 亚洲国产你懂的| 偷拍自拍在线视频| 久久精品97| 欧美日韩亚洲在线观看| 精品国模一区二区三区欧美| 天天做天天爱天天综合网2021| 肥婆老bbb肥婆bbbbb| 波多野结衣视频播放| 欧美大片免费播放| 粉嫩在线一区二区三区视频| 亚洲精品高清无码视频| 69视频在线观看免费| 精品国产乱码久久久久久久软件| 四虎国产精品永久| 亚洲色图综合图区| 四虎国产成人精品免费一女五男| 99精品老司机免费视频| 又粗又硬又爽国产视频| 无码精品一区二区三区在线播放| 免费h网站在线观看| gogogo高清在线观看一区二区| 亚洲色图第三页| 999久久久亚洲| 能免费看av的网站| 国产一区二区三区亚洲| 国产成人美女视频| 美女网站在线免费欧美精品| 一区二区三区在线视频免费| a级高清视频欧美日韩| 国产男女猛烈无遮挡| 国内精品二区| 亚洲精品国产拍免费91在线| 亚洲国产精品久久卡一| 九九热视频精品在线观看| 亚洲第一狼人区| 国产精品333| 国产在线麻豆精品观看| 在线观看国产成人| 欧美国产综合一区二区| 成年人午夜久久久| 川上优的av在线一区二区| 鲁丝一区鲁丝二区鲁丝三区| 免费影院在线观看一区| 亚洲精品国产精品国产| 亚洲激情视频在线播放| 岛国av一区二区| 欧美怡春院一区二区三区| 欧美成人aaa片一区国产精品| 污网站在线观看视频| 欧美sm精品调教视频| 91沈先生在线观看| 中文字幕制服丝袜成人av| 波多野结衣一区二区三区在线| 欧美精品一区二区不卡| 拍真实国产伦偷精品| 91精品一区二区三区综合在线爱| 五丁香在线视频| 欧美一区2区三区4区公司二百| 中文字幕在线免费看线人| 福利一区在线观看| 91精品啪在线观看国产60岁| 久久精品久久精品亚洲人| 丝袜国产日韩另类美女| 日韩中文一区二区| 亚洲**2019国产| 亚洲精品日本| 91丨国产丨九色丨pron| 日韩在线精品| 精品深夜福利视频| 蜜桃网站在线观看| 欧美亚洲丝袜传媒另类| 国产福利微拍精品一区二区| 色婷婷综合视频在线观看| 成人小电影网站| 91丨九色丨蝌蚪富婆spa| 青青草国产成人久久91网| 亚洲天堂视频在线观看| 久久99影院| 在线播放91灌醉迷j高跟美女| 亚洲jjzzjjzz在线观看| 大美女一区二区三区| 在线成人综合色一区| 国产一级性片| 国产999在线| 成人在线观看网址| 欧美大陆国产| 精品一区二区三区蜜桃在线| 午夜免费视频在线国产| 日韩毛片高清在线播放| 激情视频网站在线播放色| 91青青国产在线观看精品| 欧美私人网站| 久久久精品午夜少妇| 99re这里只有| 欧美变态tickle挠乳网站| 午夜精品一区二区三区在线视频| 亚洲精品第一国产综合精品| 国产精品黑丝在线播放| 国产精品爱久久久久久久| 青青草一区二区| 日韩高清人体午夜| 精品久久一区二区三区| 成人中文字幕av| 曰本三级日本三级日本三级| 国内精品视频在线播放| 中文产幕区在线观看| 18欧美乱大交hd1984| 午夜一区二区三区在线观看| 136福利精品导航| 精品国产欧美成人夜夜嗨| 亚洲怡红院在线观看| 男人靠女人免费视频网站| 成人中文字幕av| 久久久久麻豆v国产精华液好用吗| 国产精品毛片在线| 欧美一区二区日韩| 水蜜桃色314在线观看| 久久久免费看| 久久夜精品va视频免费观看| 久久久久久久蜜桃| 国产精品我不卡| 国产精品igao视频网网址不卡日韩| 91丨九色丨蝌蚪丨少妇在线观看| 久久最新视频| 国产女无套免费视频| 国产视频1区2区| 亚洲 小说区 图片区| 天天夜碰日日摸日日澡| 伊人国产在线看一| 日韩三级视频在线看| 色诱亚洲精品久久久久久| 欧美精品资源| 狠狠色香婷婷久久亚洲精品| 女同一区二区免费aⅴ| 亚洲欧美综合一区| 国产精品久久久久久久久图文区| av在线播放av| 日韩免费在线播放| 精品久久97| 欧美日韩播放| 国产精品va在线观看无码| 午夜在线观看免费一区| 美女18一级毛片一品久道久久综合| 成人香蕉社区| 欧美hdfree性xxxx| 成人免费看视频| 亚洲av午夜精品一区二区三区| 欧美一区日本一区韩国一区| 国产精品久久久久久久久鸭| 丰满湿润大白屁股bbw按摩| 黄色网址电影| 91九色蝌蚪91por成人| 精品日韩一区二区| 精品播放一区二区| 99久精品视频在线观看视频| 日本在线观看a| 国产免费成人在线视频| 午夜视频在线| 美女又爽又黄免费动漫| 精久久久久久久久久久| 日韩国产在线一| 精品中文字幕一区二区三区| 欧美电影完整版在线观看| 天堂av2024| 国外成人在线视频| 国产精品日韩精品在线播放| 亚洲精品久久久狠狠狠爱| 国产91一区| 久久成人免费| 国产精品videossex久久发布| 口述被爽到呻吟高潮自述| 911精品国产| 麻豆国产高清在线播放| 国产精品99久久免费观看| 国产亚洲va综合人人澡精品| 国产真实老熟女无套内射| 欧美精品999| 男女18免费网站视频| 久久av免费看| 欧美成人影院| 国产综合18久久久久久| 成人免费视频一区| www.91av...| 成人福利片网站| 免费羞羞视频| 日韩影院一区二区| 白白色在线观看| 琪琪久久久久日韩精品| www污污网站在线看| 日韩av资源网| 欧美亚洲一区二区三区四区| 免费看a网站| 精品免费日产一区一区三区免费| 亚洲精选一二三| 国产精品亲子乱子伦xxxx裸| 欧美激情精品久久久久久蜜臀| 国产最新视频在线观看| 亚洲婷婷影院| 国产又白又嫩又爽又黄| 亚洲国产精品久久久男人的天堂| 欧美日韩国产成人| 91久久精品一区二区三| 久草在.com| 日av在线播放| 99热精品免费| 亚洲先锋成人| 一区二区三区免费在线观看视频| 亚洲精品mv| 嫩草一区二区三区| 欧美成人午夜精品免费| 精品国产福利视频| 久久国产主播精品| 蜜臀精品久久久久久蜜臀| 久久久精品电影| 亚洲一区二区三区| 成人免费在线观看入口| 日韩欧美亚洲一区二区| 国产一级片免费在线观看| 亚洲一卡二卡| 狠狠躁夜夜躁人人爽天天天天97| 久草在线看片| av在线综合网| 国产精品欧美久久久久一区二区| 亚洲免费观看在线观看| 精品一区二区6| 日本一区二区三区视频| 在线观看xxxx| 国产精品96久久久久久| av免费在线观看网站| 成人18视频在线播放| 日本中文一区二区三区| 91麻豆精品激情在线观看最新| 欧美成人免费全部网站| 99视频在线视频| 精品999日本久久久影院| 日韩精品黄色| 麻豆视频在线观看| 成人无码www在线看免费| 日韩欧美亚洲系列| 91国语精品自产拍在线观看性色| 精品亚洲美女网站| 日韩欧美国产精品一区二区三区| 国产一级片免费观看| 国产精品免费视频一区一| 精彩视频一区二区三区| 日韩欧美亚洲综合| 麻豆国产欧美一区二区三区r| 无码aⅴ精品一区二区三区| 国产精品综合色区在线观看| 中文字幕第31页| 精品88久久久久88久久久| 国产日本精品| 免费一看一级毛片| 丁香五月缴情综合网| 欧美激情1区2区3区| 不卡日韩av| 色综合影院在线| 97超碰最新| 欧美黑人疯狂性受xxxxx喷水| 亚洲女人在线观看| 26uuu久久噜噜噜噜| 神马久久精品综合| 亚洲精品自产拍在线观看app| 美女航空一级毛片在线播放|