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

深入Lumisoft.NET組件與.NET API實現郵件發送功能的對比分析_.Net教程

編輯Tag賺U幣

推薦:深入Lumisoft.NET實現郵件發送功能的方法詳解
本篇文章對使用Lumisoft.NET實現郵件發送功能的方法機型了詳細的分析介紹。需要的朋友參考下

我在另一篇文章《》有大致對這個Lumisoft.NET組件的使用進行了介紹,當然Lumisoft.NET組件除了提供郵件發送功能外,還提供了郵件接收等功能的處理(包括基于POP3協議和IMAP協議),而.NET則除了提供SMTP協議功能外,則沒有提供POP3協議處理的相關類庫,因此收取郵件這需要自己進行封裝(需要也可以參考codeproject.com上的相關文章)。

1、.NET的郵件發送功能實現
.NET本身封裝了一個SmtpClient類以及相關的郵件對象類,這樣利用這些類庫,也可以方便實現郵件的發送功能的了。

如添加發送人地址,抄送地址,以及暗送地址(多個地址用逗號分開)代碼如下。

復制代碼 代碼如下:www.zhaotila.cn

string toEmails = mailInfo.ToEmail;

string bcc = "";
mailInfo.RecipientBCC.ForEach(obj => bcc += string.Format("{0},", obj));
bcc = bcc.Trim(',');

string cc = "";
mailInfo.RecipientCC.ForEach(obj => cc += string.Format("{0},", obj));
cc = cc.Trim(',');

MailMessage mail = new MailMessage(settingInfo.MailFrom, toEmails);
if (!string.IsNullOrEmpty(bcc))
{
mail.Bcc.Add(bcc);
}
if (!string.IsNullOrEmpty(cc))
{
mail.CC.Add(cc);
}


.NET的附件和嵌入式資源由對象Attachment和LinkedResource進行管理,他們的利用代碼如下所示:
復制代碼 代碼如下:www.zhaotila.cn

//附件
foreach (string fileName in mailInfo.Attachments)
{
mail.Attachments.Add(new Attachment(fileName));
}

//嵌入資源
AlternateView view = AlternateView.CreateAlternateViewFromString(mailInfo.Body, Encoding.UTF8, MediaTypeNames.Text.Html);
foreach (LinkedAttachementInfo link in mailInfo.EmbedObjects)
{
LinkedResource resource = new LinkedResource(link.Stream, link.MimeType);
resource.ContentId = link.ContentId;
view.LinkedResources.Add(resource);
}
mail.AlternateViews.Add(view);


發送郵件的其他部分代碼如下所示
復制代碼 代碼如下:www.zhaotila.cn

mail.IsBodyHtml = mailInfo.IsBodyHtml;
mail.BodyEncoding = Encoding.UTF8;
mail.Subject = mailInfo.Subject;
mail.SubjectEncoding = Encoding.UTF8;

//發送賬戶設置信息
SmtpClient client = new SmtpClient();
client.Host = settingInfo.SmtpServer;
client.Port = settingInfo.SmptPort;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential(settingInfo.SmtpUser, settingInfo.SmtpPass);

bool success = false;
try
{
client.Send(mail);
success = true;
}
catch (Exception ex)
{
LogTextHelper.Error(ex);
//throw;
}


上面利用.net的SmtpClient發送郵件操作的完整代碼如下:
復制代碼 代碼如下:www.zhaotila.cn

/// <summary>
/// 發送外部郵件(系統配置,系統郵件)
/// </summary>
/// <param name="mailInfo">發送郵件信息</param>
/// <returns></returns>
public CommonResult Send(MailInfo mailInfo)
{
CommonResult result = new CommonResult();
try
{
AppConfig config = new AppConfig();
string MailDomain = config.AppConfigGet("MailDomain");
string MailUsername = config.AppConfigGet("MailUsername");
string MailPassword = config.AppConfigGet("MailPassword");
string MailPort = config.AppConfigGet("MailPort");
string MailFrom = config.AppConfigGet("MailFrom");
int port = 25;
int.TryParse(MailPort, out port);

SmtpSettingInfo settingInfo = new SmtpSettingInfo(MailDomain, port,
MailUsername, MailPassword, MailFrom);

result.Success = PrivateSendEmail(mailInfo, settingInfo);
}
catch (Exception ex)
{
result.ErrorMessage = ex.Message;
throw;
}

return result;
}

/// <summary>
/// 通用發送郵件操作
/// </summary>
private static bool PrivateSendEmail(MailInfo mailInfo, SmtpSettingInfo settingInfo)
{
string toEmails = mailInfo.ToEmail;

string bcc = "";
mailInfo.RecipientBCC.ForEach(obj => bcc += string.Format("{0},", obj));
bcc = bcc.Trim(',');

string cc = "";
mailInfo.RecipientCC.ForEach(obj => cc += string.Format("{0},", obj));
cc = cc.Trim(',');

MailMessage mail = new MailMessage(settingInfo.MailFrom, toEmails);
if (!string.IsNullOrEmpty(bcc))
{
mail.Bcc.Add(bcc);
}
if (!string.IsNullOrEmpty(cc))
{
mail.CC.Add(cc);
}

//附件
foreach (string fileName in mailInfo.Attachments)
{
mail.Attachments.Add(new Attachment(fileName));
}

//嵌入資源
AlternateView view = AlternateView.CreateAlternateViewFromString(mailInfo.Body, Encoding.UTF8, MediaTypeNames.Text.Html);
foreach (LinkedAttachementInfo link in mailInfo.EmbedObjects)
{
LinkedResource resource = new LinkedResource(link.Stream, link.MimeType);
resource.ContentId = link.ContentId;
view.LinkedResources.Add(resource);
}
mail.AlternateViews.Add(view);
mail.IsBodyHtml = mailInfo.IsBodyHtml;
mail.BodyEncoding = Encoding.UTF8;
mail.Subject = mailInfo.Subject;
mail.SubjectEncoding = Encoding.UTF8;

//發送賬戶設置信息
SmtpClient client = new SmtpClient();
client.Host = settingInfo.SmtpServer;
client.Port = settingInfo.SmptPort;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential(settingInfo.SmtpUser, settingInfo.SmtpPass);

bool success = false;
try
{
client.Send(mail);
success = true;
}
catch (Exception ex)
{
LogTextHelper.Error(ex);
//throw;
}

string message = string.Format("發送給【{0}】的郵件“{1}”,{2},時間:{3}",
mailInfo.ToEmail[0], mailInfo.Subject, success ? "發送成功" : "發送失敗", DateTime.Now);
LogTextHelper.Info(message);

return success;
}


2、基于Lumisoft.NET組件的郵件發送功能實現

基于Lumisoft.NET組件的郵件發送,也是一種很常用的,因為這個開源組件非常強大,經?梢栽谝恍┏绦蛑斜皇褂。

這個發送郵件的功能主要是利用SMTP_Client類來實現的,如下代碼所示。注意其中的Authenticate函數已經被舍棄,可以使用Auth方法進行驗證。但是函數參數有所不同,根據驗證對象,使用不同的驗證方式,一般選擇AUTH_SASL_Client_Plain對象即可。

復制代碼 代碼如下:www.zhaotila.cn

public bool Send()
{
bool sended = false;
using (SMTP_Client client = new SMTP_Client())
{
client.Connect(smtpServer, smtpPort, smtpUseSsl);
client.EhloHelo(smtpServer);
var authhh = new AUTH_SASL_Client_Plain(username, password);
client.Auth(authhh);
//client.Authenticate(username, password);
//string text = client.GreetingText;
client.MailFrom(from, -1);
foreach (string address in toList.Keys)
{
client.RcptTo(address);
}

//采用Mail_Message類型的Stream
Mail_Message m = Create_PlainText_Html_Attachment_Image(toList, ccList, from, fromDisplay, subject, body, attachments);
using (MemoryStream stream = new MemoryStream())
{
m.ToStream(stream, new MIME_Encoding_EncodedWord(MIME_EncodedWordEncoding.Q, Encoding.UTF8), Encoding.UTF8);
stream.Position = 0;
client.SendMessage(stream);

sended = true;
}
if (m != null)
{
m.Dispose();
}

client.Disconnect();
}
return sended;
}


構造用于SMTP發送的數據,可以使用Mail_Message 對象,也可以使用Mime對象,雖然讀都可以實現發送功能,不過Mime對象是舍棄的對象了。

構造Mail_Message對象后,創建用于發送的格式要轉換為Stream對象。轉換為發送的Stream操作如下所示。

復制代碼 代碼如下:www.zhaotila.cn

using (MemoryStream stream = new MemoryStream())
{
m.ToStream(stream, new MIME_Encoding_EncodedWord(MIME_EncodedWordEncoding.Q, Encoding.UTF8), Encoding.UTF8);
stream.Position = 0;
client.SendMessage(stream);

sended = true;
}


構造Mail_Message格式的郵件操作如下所示。
復制代碼 代碼如下:www.zhaotila.cn

private Mail_Message Create_PlainText_Html_Attachment_Image(Dictionary<string,string> tomails, Dictionary<string, string> ccmails, string mailFrom, string mailFromDisplay,
string subject, string body, Dictionary<string, string> attachments, string notifyEmail = "", string plaintTextTips = "")
{
Mail_Message msg = new Mail_Message();
msg.MimeVersion = "1.0";
msg.MessageID = MIME_Utils.CreateMessageID();
msg.Date = DateTime.Now;
msg.Subject = subject;
msg.From = new Mail_t_MailboxList();
msg.From.Add(new Mail_t_Mailbox(mailFromDisplay, mailFrom));
msg.To = new Mail_t_AddressList();
foreach (string address in tomails.Keys)
{
string displayName = tomails[address];
msg.To.Add(new Mail_t_Mailbox(displayName, address));
}
msg.Cc = new Mail_t_AddressList();
foreach (string address in ccmails.Keys)
{
string displayName = ccmails[address];
msg.Cc.Add(new Mail_t_Mailbox(displayName, address));
}

//設置回執通知
if (!string.IsNullOrEmpty(notifyEmail) && ValidateUtil.IsEmail(notifyEmail))
{
msg.DispositionNotificationTo.Add(new Mail_t_Mailbox(notifyEmail, notifyEmail));
}

#region MyRegion

//--- multipart/mixed -----------------------------------
MIME_h_ContentType contentType_multipartMixed = new MIME_h_ContentType(MIME_MediaTypes.Multipart.mixed);
contentType_multipartMixed.Param_Boundary = Guid.NewGuid().ToString().Replace('-', '.');
MIME_b_MultipartMixed multipartMixed = new MIME_b_MultipartMixed(contentType_multipartMixed);
msg.Body = multipartMixed;

//--- multipart/alternative -----------------------------
MIME_Entity entity_multipartAlternative = new MIME_Entity();
MIME_h_ContentType contentType_multipartAlternative = new MIME_h_ContentType(MIME_MediaTypes.Multipart.alternative);
contentType_multipartAlternative.Param_Boundary = Guid.NewGuid().ToString().Replace('-', '.');
MIME_b_MultipartAlternative multipartAlternative = new MIME_b_MultipartAlternative(contentType_multipartAlternative);
entity_multipartAlternative.Body = multipartAlternative;
multipartMixed.BodyParts.Add(entity_multipartAlternative);

//--- text/plain ----------------------------------------
MIME_Entity entity_text_plain = new MIME_Entity();
MIME_b_Text text_plain = new MIME_b_Text(MIME_MediaTypes.Text.plain);
entity_text_plain.Body = text_plain;

//普通文本郵件內容,如果對方的收件客戶端不支持HTML,這是必需的
string plainTextBody = "如果你郵件客戶端不支持HTML格式,或者你切換到“普通文本”視圖,將看到此內容";
if (!string.IsNullOrEmpty(plaintTextTips))
{
plainTextBody = plaintTextTips;
}

text_plain.SetText(MIME_TransferEncodings.QuotedPrintable, Encoding.UTF8, plainTextBody);
multipartAlternative.BodyParts.Add(entity_text_plain);

//--- text/html -----------------------------------------
string htmlText = body;//"<html>這是一份測試郵件,<img src=\"cid:test.jpg\">來自<font color=red><b>LumiSoft.Net</b></font></html>";
MIME_Entity entity_text_html = new MIME_Entity();
MIME_b_Text text_html = new MIME_b_Text(MIME_MediaTypes.Text.html);
entity_text_html.Body = text_html;
text_html.SetText(MIME_TransferEncodings.QuotedPrintable, Encoding.UTF8, htmlText);
multipartAlternative.BodyParts.Add(entity_text_html);

//--- application/octet-stream -------------------------
WebClient client = new WebClient();
foreach (string attach in attachments.Keys)
{
try
{
byte[] bytes = client.DownloadData(attach);
using (MemoryStream stream = new MemoryStream(bytes))
{
multipartMixed.BodyParts.Add(Mail_Message.CreateAttachment(stream, attachments[attach]));
}
}
catch (Exception ex)
{
LogTextHelper.Error(ex);
}
}

#endregion

return msg;
}


而構造Mime格式的操作如下所示。
復制代碼 代碼如下:www.zhaotila.cn

private Mime Create_Html_Attachment_Image(string mailTo, string mailFrom, string mailFromDisplay,
string subject, string body, List<string> attachments, Dictionary<string, string> embedImages, string notifyEmail = "", string plaintTextTips = "",
string replyEmail = "")
{
Mime m = new Mime();
MimeEntity mainEntity = m.MainEntity;

mainEntity.From = new AddressList();
mainEntity.From.Add(new MailboxAddress(mailFromDisplay, mailFrom));
mainEntity.To = new AddressList();
mainEntity.To.Add(new MailboxAddress(mailTo, mailTo));
mainEntity.Subject = subject;
mainEntity.ContentType = MediaType_enum.Multipart_mixed;

//設置回執通知
if (!string.IsNullOrEmpty(notifyEmail) && ValidateUtil.IsEmail(notifyEmail))
{
mainEntity.DSN = notifyEmail;
}

//設置統一回復地址
if (!string.IsNullOrEmpty(replyEmail) && ValidateUtil.IsEmail(replyEmail))
{
mainEntity.ReplyTo = new AddressList();
mainEntity.ReplyTo.Add(new MailboxAddress(replyEmail, replyEmail));
}

MimeEntity textEntity = mainEntity.ChildEntities.Add();
textEntity.ContentType = MediaType_enum.Text_html;
textEntity.ContentTransferEncoding = ContentTransferEncoding_enum.QuotedPrintable;
textEntity.DataText = body;

//附件
foreach (string attach in attachments)
{
MimeEntity attachmentEntity = mainEntity.ChildEntities.Add();
attachmentEntity.ContentType = MediaType_enum.Application_octet_stream;
attachmentEntity.ContentDisposition = ContentDisposition_enum.Attachment;
attachmentEntity.ContentTransferEncoding = ContentTransferEncoding_enum.Base64;
FileInfo file = new FileInfo(attach);
attachmentEntity.ContentDisposition_FileName = file.Name;
attachmentEntity.DataFromFile(attach);
}

//嵌入圖片
foreach (string key in embedImages.Keys)
{
MimeEntity attachmentEntity = mainEntity.ChildEntities.Add();
attachmentEntity.ContentType = MediaType_enum.Application_octet_stream;
attachmentEntity.ContentDisposition = ContentDisposition_enum.Inline;
attachmentEntity.ContentTransferEncoding = ContentTransferEncoding_enum.Base64;
string imageFile = embedImages[key];
FileInfo file = new FileInfo(imageFile);
attachmentEntity.ContentDisposition_FileName = file.Name;

//string displayName = Path.GetFileNameWithoutExtension(fileName);
attachmentEntity.ContentID = key;//BytesTools.BytesToHex(Encoding.Default.GetBytes(fileName));

attachmentEntity.DataFromFile(imageFile);
}

return m;
}


綜合以上兩者的發送功能,都可以實現郵件的發送操作,如下界面是發送郵件界面。

3、LumiSoft.NET存儲eml郵件文件以及發送eml文件操作

除了上面的發送普通郵件,Lumisoft還支持吧郵件序列號存儲到文件(.eml郵件文件)里面,然后也可以通過把文件讀取到流里面,進行發送,對于某種場合,可以把郵件存儲到eml文件是一個很好的操作。

存儲EML文件的相關操作如下所示。

復制代碼 代碼如下:www.zhaotila.cn

private void btnCreateFile_Click(object sender, EventArgs e)
{
string attachFile = Path.Combine(Application.StartupPath, "Attachment/Hotel2.png");
List<string> attachments = new List<string>();
attachments.Add(attachFile);
string subject = "測試郵件";
string body = "<html>這是一份測試郵件,來自<font color=red><b>LumiSoft.Net</b></font></html>";
string bodyEmbedy = "<html>這是一份測試郵件<img src=\"cid:test.jpg\">,來自<font color=red><b>LumiSoft.Net</b></font></html>";
Dictionary<string, string> embedList = new Dictionary<string, string>();
embedList.Add("test.jpg", "C:\\test.jpg");

//存儲為Eml文件
string path = Path.Combine(Application.StartupPath, "Eml");
DirectoryUtil.AssertDirExist(path);
string emlFile = string.Format("{0}/{1}.eml", path, DateTime.Now.ToFileTime());

Mime m = Create_Html_Attachment_Image(to, from, from, subject, bodyEmbedy, attachments, embedList);
m.ToFile(emlFile);

MessageUtil.ShowTips("OK");
}


發送EML文件操作如下所示。
復制代碼 代碼如下:www.zhaotila.cn

private void btnSendFile_Click(object sender, EventArgs e)
{
using (SMTP_Client client = new SMTP_Client())
{
int smtpPort = smtpUseSsl ? WellKnownPorts.SMTP_SSL : WellKnownPorts.SMTP;

client.Connect(smtpServer, smtpPort, smtpUseSsl);
client.EhloHelo(smtpServer);
//var authhh = new AUTH_SASL_Client_Plain(username, password);
//client.Auth(authhh);
client.Authenticate(username, password);
//string text = client.GreetingText;
client.MailFrom(from, -1);
client.RcptTo(to);

string path = Path.Combine(Application.StartupPath, "Eml");
string emlFile = Directory.GetFiles(path)[0];
var msg = Mail_Message.ParseFromFile(emlFile);

MemoryStream stream = new MemoryStream();
msg.ToStream(stream, new MIME_Encoding_EncodedWord(MIME_EncodedWordEncoding.Q, Encoding.UTF8), Encoding.UTF8);
stream.Position = 0;
client.SendMessage(stream);
client.Disconnect();
}
MessageUtil.ShowTips("OK");
}


分享:深入Lumisoft.NET組件開發碰到亂碼等問題的解決方法
本篇文章介紹了,在Lumisoft.NET組件開發中碰到亂碼等一些問題的解決方法。需要的朋友參考下

來源:模板無憂//所屬分類:.Net教程/更新時間:2013-05-08
相關.Net教程
久久成人免费电影| 精品国产1区二区| 高清在线观看免费| 日本不卡视频一区| 久青草视频在线观看| 国产成人亚洲精品狼色在线| 日韩三级.com| 亚洲成人a**站| 91蜜桃网站免费观看| 国产精品久久综合av爱欲tv| 97碰碰视频| 欧美日韩在线影院| 亚洲一区在线免费观看| 91久久极品少妇xxxxⅹ软件| 国产精品视频免费一区二区三区| 在线视频不卡一区二区三区| 亚洲人在线观看| 国产精品久久精品| 污污网站在线观看视频| 91免费在线播放| 4438全国成人免费| 久久亚洲AV无码专区成人国产| 美洲天堂一区二卡三卡四卡视频| √…a在线天堂一区| 色婷婷国产精品久久包臀| 国产视频精品久久久| 色诱女教师一区二区三区| 亚洲欧洲午夜一线一品| 国产在线视频2019最新视频| 九九精品在线观看视频| 日本v片在线高清不卡在线观看| 国产精品久久久久国产精品日日 | 色婷婷综合激情| 欧美成人激情视频免费观看| 中文字幕人妻一区二区| 亚洲成av人片观看| 精品国产av无码一区二区三区| 亚洲第一色网站| 91免费国产在线观看| 欧美视频免费在线观看| 欧美孕妇与黑人孕交| 欧美美女黄色网| 国产精品久久久久久久久久久久午夜片 | 亚洲欧美在线观看| 日本电影亚洲天堂| 国产精品久久久国产盗摄| 91精品国产色综合久久不卡98口 | 特级毛片www| 91精品国产乱码久久| av在线不卡网| 日本精品中文字幕| 欧日韩在线观看| 91色在线视频| 手机在线观看免费av| 国产精品无遮挡| 精品国产一区av| 波多野结衣家庭教师视频| 欧美重口乱码一区二区| 青草视频在线观看免费| 欧美日韩1234| 亚洲精品视频网址| 久久99久久亚洲国产| 国产又大又黄视频| 日韩欧美高清一区| 日韩免费三级| 久草福利在线观看| 久久精品男女| 中文在线不卡视频| 精品欧美日韩在线| 欧美大片在线播放| 久久久欧美精品sm网站| 精品久久久久久一区二区里番| 欧美大片网站在线观看| 国产婷婷一区二区三区| 一炮成瘾1v1高h| 精品无人码麻豆乱码1区2区 | 麻豆成人在线播放| 国产另类ts人妖一区二区| 色88888久久久久久影院按摩 | √天堂中文官网8在线| 婷婷视频在线播放| 亚洲欧美国产毛片在线| 日本免费在线观看视频| 国产精品99无码一区二区| 女尊高h男高潮呻吟| 无码精品一区二区三区在线播放| 日韩在线一级片| 最近中文字幕一区二区| 超碰97人人射妻| 国产一级不卡毛片| 五月天综合视频| 成熟的女同志hd| 欧美videossex极品| 国产免费不卡视频| 又污又黄的网站| 久久精品男女| 99精品视频一区| 日韩一区有码在线| 欧美日韩国产一二三| 亚洲黄在线观看| 久久久久久久一| 成人免费午夜电影| 欧美日韩视频免费在线观看| 中文字幕第一页在线视频| 成年女人免费视频| 免费视频网站www| 高清一区二区三区四区| www日本高清| 成人午夜在线视频| 欧美亚洲综合一区| www.久久色.com| 国产精品免费视频一区二区 | 欧美日韩国产999| 久久偷看各类wc女厕嘘嘘偷窃| 免费黄色福利视频| 精品一区二区三区蜜桃在线| 99热这里只有精品9| 久久夜色精品一区| 欧美精品一区二区久久久| 国产精品com| 免费视频爱爱太爽了| www.xxxx日本| 奇米影视一区二区三区| 欧美天天综合网| 欧美国产日本在线| 欧美高清性xxxxhd| 蜜桃视频最新网址| 国产.欧美.日韩| 亚洲国产精品va在线观看黑人| 国产精品久久久久久av| 欧美一级黄色片视频| 天天爽夜夜爽人人爽| 国产精品天天摸av网| 免费91麻豆精品国产自产在线观看| 亚洲国产精品视频一区| 天天躁夜夜躁狠狠是什么心态| 久久亚洲不卡| 日韩亚洲欧美在线| 久久综合九色综合久99| 欧美福利第一页| 成人一级片网址| 亚洲精品999| 亚洲最大色综合成人av| 四虎永久在线精品| 偷拍日韩校园综合在线| 国产精品678| 五月婷婷欧美激情| 久久综合久久久久88| 欧美不卡视频一区| 一二三四社区欧美黄| 亚洲自拍偷拍九九九| 成人久久一区二区| 老熟妻内射精品一区| 亚洲图片激情小说| 成人国产精品色哟哟| 在线观看黄网址| 欧美区在线播放| 人妻丰满熟妇av无码区app| 激情综合网最新| 欧美日韩aaa| av在线播放亚洲| 免费一区二区视频| 久久6免费高清热精品| 日韩精品无码一区二区三区久久久 | 亚洲v国产v欧美v久久久久久| 国产三级精品三级在线专区| 国产不卡在线观看| 欧美国产在线看| 欧美日韩成人高清| 久草免费福利在线| 顶级嫩模精品视频在线看| 欧美在线免费观看| 久久久国产成人| 欧美一区二区三区四区高清| 自拍日韩亚洲一区在线| 91麻豆免费观看| 久久波多野结衣| 五月天激情开心网| 国产99视频精品免视看7| 国产精品a成v人在线播放| 亚洲国产精品一区二区三区| 日韩黄色片视频| 国产精品国产精品国产专区不蜜| 日本中文不卡| 高清国产一区二区三区| 国产偷久久久精品专区| 奇米777欧美一区二区| 久久香蕉国产线看观看网| 日本va欧美va国产激情| 精品久久久av| 99自拍视频在线| 久久精品国产欧美激情| 欧美日韩三级在线观看| 欧美成人免费va影院高清| 天堂网中文字幕| 成人看片人aa| 国产伦精品一区二区三区在线观看| 五码日韩精品一区二区三区视频| 国产亚洲精品久久久久久| 成人免费观看cn| 亚洲精品免费电影| 性色av浪潮av| 91精品国产91久久久久久最新毛片| 国内精品卡一卡二卡三| 亚洲天堂精品在线| 日本一级一片免费视频| 欧美大码xxxx| 三级亚洲高清视频| 亚洲一区二区在线观| 亚洲欧美另类图片小说| 亚洲AV无码国产精品| 日韩视频一区二区在线观看| 中文字幕久久网| 91高潮在线观看| 91一区一区三区| 99热这里只有精品2| 在线看日韩av| 久久精品国产精品亚洲精品| 麻豆tv在线播放| 日韩视频免费直播| 一区二区日韩在线观看| 亚洲欧洲日韩在线| a天堂资源在线观看| 欧美日韩高清一区二区| 一级特黄aaa大片在线观看| 99久热re在线精品996热视频| 亚洲欧美电影一区二区| 久久国产福利国产秒拍| 欧美黄色一级网站| 5252色成人免费视频| 国产精品中文字幕日韩精品| 国产精品区在线| 欧美极品美女视频网站在线观看免费| 亚洲 欧美 激情 小说 另类| 3d动漫一区二区三区| 精品一区二区电影| 国产一区亚洲一区| 麻豆精品国产传媒av| 国产精品www| 色哟哟亚洲精品| 亚洲国产精品成人无久久精品| 欧美在线日韩精品| 亚洲精品国产美女| 国产aⅴ综合色| 青青草手机在线视频| 一区二区三区av在线| 国产亚洲欧洲高清| 国产精品久久一级| 中文在线免费看视频| 在线观看免费黄网站| 日韩av免费在线播放| 欧美色视频在线| 日韩av一区二区在线影视| 国产亚洲无码精品| 91精品国产一区二区三区动漫| 日韩一区和二区| 粉嫩蜜臀av国产精品网站| 久久综合激情网| 男人插女人下面免费视频| 亚洲视频一区在线播放| 中国成人亚色综合网站| 欧美与黑人午夜性猛交久久久| 狠狠躁天天躁日日躁欧美| 青青草国产精品亚洲专区无| www.黄色com| 国产视频一区二区三区在线播放| 国产精品一区二区久久国产| 精品久久久久香蕉网| 久久久久9999亚洲精品| 亚洲图片小说视频| 国产精品无码在线| 人妻少妇精品无码专区二区 | 精品久久国产97色综合| 国产精品美女www爽爽爽| av 一区二区三区| 朝桐光av在线| 成人三级视频在线播放| 欧美区高清在线| 国产成人亚洲综合91| 国产一区二区三区直播精品电影| 中文字幕+乱码+中文字幕一区| 亚洲精品视频网| 精品一区二区三孕妇视频| 亚洲欧美日韩一二三区| 艳母动漫在线观看| 国产女主播一区二区三区| 欧美经典一区二区| 国产成人在线免费| 午夜影院免费体验区| 中文字幕 国产| 草久久免费视频| 国产一级一级片| 国产主播av在线| 娇妻被老王脔到高潮失禁视频| 亚洲一区二区四区| 国产chinese精品一区二区| 日本a级片电影一区二区| 俺也去精品视频在线观看| 亚洲国产精品yw在线观看| 日韩三级.com| 91黄色激情网站| 欧美性生活久久| 欧美色大人视频| 亚洲国产婷婷综合在线精品| 亚洲欧洲制服丝袜| 中文字幕在线不卡| 欧美高清在线视频| 国产日韩欧美一区二区三区综合| 无码国产伦一区二区三区视频| 国产一区二区小视频| 国产高清免费在线观看| www.xxx国产| 国产老妇另类xxxxx| 99国产精品国产精品毛片| 久久电影国产免费久久电影 | 欧美一区日韩一区| 日韩欧美国产一区二区| 欧美色倩网站大全免费| 日韩欧美卡一卡二| 亚洲成人性视频| 久久九九国产精品怡红院| 97视频免费在线看| 91超碰在线电影| 伊人久久婷婷色综合98网| 亚洲国产精品三区| 亚洲天堂视频一区| 99久久99久久精品国产| 一级片中文字幕| 亚洲毛片在线播放| 久久99精品视频| 久久久久9999亚洲精品| 丁香五六月婷婷久久激情| 日韩欧美国产麻豆| 亚洲香蕉伊综合在人在线视看 | 日本免费不卡一区二区| 成人性生活免费看| 黄色av一区二区| 毛片av一区二区三区| 有坂深雪av一区二区精品| 日韩欧美国产一区二区在线播放| 四虎精品免费视频| 精品人妻无码一区二区三区换脸| 午夜精品久久久久久久久久久久久蜜桃| 狠狠人妻久久久久久| av在线不卡电影| 欧洲一区在线观看| 国产一区二区三区18| 成人欧美在线观看| 亚洲爆乳无码专区| 羞羞色院91蜜桃| 欧美韩国日本综合| 上原亚衣av一区二区三区| 国产午夜精品一区| 中文字幕丰满乱码| 蜜臀精品一区二区三区| 91小视频在线| 亚洲精品视频免费| 久久综合给合久久狠狠色| 人妻丰满熟妇aⅴ无码| 日韩精品欧美成人高清一区二区| 欧美日韩国产精品一区| 欧美一级大片视频| 久草视频国产在线| 美女又爽又黄免费视频| 成人一区二区三区视频| 亚洲欧美中文另类| 艳母动漫在线观看| 国产精品第二十页| caoporn91| 国产精品久久久久aaaa樱花 | 精品爽片免费看久久| 国产三区精品| 丁香激情五月少妇| 久久久久久久久久电影| 九九热最新视频//这里只有精品| 日韩xxxx视频| 国产免费黄色大片| 日韩欧美视频一区二区三区| 91夜夜未满十八勿入爽爽影院| 国产黄片一区二区三区| hitomi一区二区三区精品| 亚洲美女视频网站| 超碰在线人人爱| 懂色av一区二区三区免费观看| 美女性感视频久久久| 熟女人妇 成熟妇女系列视频| 日本成人超碰在线观看| 一区二区三区四区精品| 欧美丰满熟妇xxxxx| 精品中文字幕一区二区| 欧美疯狂做受xxxx高潮| 91看片破解版| 99久久er热在这里只有精品15| 国产成人一区二区三区小说| 中文乱码字幕高清一区二区| 伊人一区二区三区| 欧洲精品在线一区| 超碰人人人人人人| 亚洲成色777777女色窝| 亚洲黄色a v| 国产精品网曝门| 国产欧美日韩综合精品二区| 精品美女www爽爽爽视频| 欧美日韩爱爱视频| 希岛爱理中文字幕| 亚洲а∨天堂久久精品喷水| 亚洲欧美高清在线| 欧美系列一区二区| 毛葺葺老太做受视频| 亚洲码国产岛国毛片在线|