邮件发送类,支持HTML格式,支持优先级设置
邮件发送类,支持HTML格式,支持优先级设置。通过SOCKET类实现的
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;namespace Blood.Com.ClassLib
{
/// <summary>
/// TcpClient派生类,用来进行SMTP服务器的连接工作
/// </summary>
public class SMTPClient : TcpClient
{
public bool isConnected()
{
return Active;
}public void SendCommandToServer(string Command)
{
NetworkStream ns = this.GetStream() ;
byte[] WriteBuffer ;
WriteBuffer = new byte[1024] ;
WriteBuffer = Encoding.Default.GetBytes(Command) ;
ns.Write(WriteBuffer,0,WriteBuffer.Length);
return ;
}
public string GetServerResponse()
{
int StreamSize ;
string ReturnValue = "" ;
byte[] ReadBuffer ;
NetworkStream ns = this.GetStream() ;
ReadBuffer = new byte[1024] ;
StreamSize = ns.Read(ReadBuffer,0,ReadBuffer.Length);
if (StreamSize==0)
{
return ReturnValue ;
}
else
{
ReturnValue = Encoding.Default.GetString(ReadBuffer);
return ReturnValue;
}
}public bool DoesStringContainSMTPCode(string s,string SMTPCode)
{
return(s.IndexOf(SMTPCode,0,10)==-1)?false:true;
}} //结束类
/// <summary>
/// 发送邮件类
/// </summary>
public class SMTPMail
{
/// <summary>
/// 错误反馈信息
/// </summary>
private string strErrMessage = null;/// <summary>
/// SMTP服务器反馈的信息
/// </summary>
private string strResponse;/// <summary>
/// 构造函数
/// </summary>
public SMTPMail()
{
strErrMessage = "";
strResponse = "";
}/// <summary>
/// 取得错误反馈信息
/// </summary>
public string ErrorMessage
{
get
{
return strErrMessage ;
}
}/// <summary>
/// 取得SMTP服务器反馈的信息
/// </summary>
public string ServerResponse
{
get
{
return strResponse;
}
}/// <summary>
/// 邮件发送优先级
/// </summary>
public enum Prioritys
{
/// <summary>
/// 最高级别
/// </summary>
HIGH = 1,
/// <summary>
/// 默认级别
/// </summary>
NORMAL = 3,
/// <summary>
/// 最低级别
/// </summary>
LOW = 5
}public void SendMail(string SmtpHost,int Port,string From,string DisplayFromName,string To,string DisplayToName,Prioritys Priority,bool Html,string Base,string Subject,string Message)
{
try
{
string strResponseNumber;
SMTPClient smtpcMail = new SMTPClient();
smtpcMail.Connect(SmtpHost,Port);
bool bolConnect = smtpcMail.isConnected();//判断是否进行了连接
if (!bolConnect)
{
strErrMessage = "Smtp服务器连接失败...";
return;
}//读取反馈信息
strResponseNumber = smtpcMail.GetServerResponse();
if (smtpcMail.DoesStringContainSMTPCode(strResponseNumber,"220"))
{
this.strResponse += strResponseNumber;
}
else
{
this.strErrMessage = "连接失败" + strResponseNumber;
return ;
}string[] strSendBuffer = new string[6];
string[] strResponseCode = {"220","250","251","354","221"}; // success codes from SMTP serverstring strData = "";
strData = string.Concat("HELO ",SmtpHost);
strData = string.Concat(strData,"/r/n");
strSendBuffer[0] = strData ;strData = "";
strData = string.Concat("MAIL FROM: ","<" + From + ">");
strData = string.Concat(strData,"/r/n");
strSendBuffer[1] = strData;strData = "";
strData = string.Concat("RCPT TO: ","<" + To + ">");
strData = string.Concat(strData,"/r/n");
strSendBuffer[2] = strData;strData = "" ;
strData = string.Concat("DATA","/r/n");
strSendBuffer[3] = strData ;strData = "" ;
strData = string.Concat("From: ",DisplayFromName + "<" + From + ">");
strData = string.Concat(strData,"/r/n" );
strData = string.Concat(strData,"To: " );
strData = string.Concat(strData,DisplayToName + "<" + To + ">");
strData = string.Concat(strData,"/r/n" );
strData = string.Concat(strData,"Subject: " );
strData = string.Concat(strData,Subject);
strData = string.Concat(strData,"/r/n");
strData = string.Concat(strData,"MIME-Version: 1.0" );
strData = string.Concat(strData,"/r/n");
strData = string.Concat(strData,"X-Priority: " + Priority);
strData = string.Concat(strData,"/r/n");
strData = string.Concat(strData,"X-MSMail-Priority: " + Priority);
strData = string.Concat(strData,"/r/n");
if(Html == true)
{
strData = string.Concat(strData,"Content-Type: text/html;" );
}
else
{
strData = string.Concat(strData,"Content-Type: text/plain;" );
}
strData = string.Concat(strData,"/r/n");
strData = string.Concat(strData,"charset=/"iso-8859-1/"" );
strData = string.Concat(strData,"/r/n");
if(Html == true)
{
strData = string.Concat(strData,"Content-Transfer-Encoding: text/html;" );
}
else
{
strData = string.Concat(strData,"Content-Transfer-Encoding: text/plain;" );
}
strData = string.Concat(strData,"/r/n");
strData = string.Concat(strData,"Content-Base: /"" + Base + "/"" );
strData = string.Concat(strData,"/r/n" + "/r/n");strData = string.Concat(strData,Message);
strData = string.Concat(strData,"/r/n./r/n");
strSendBuffer[4] = strData;strData = "" ;
strData = string.Concat(strData,"QUIT/r/n");
strSendBuffer[5] = strData;int i = 0 ;
while(i < strSendBuffer.Length)
{
smtpcMail.SendCommandToServer(strSendBuffer[i]);
strResponseNumber = smtpcMail.GetServerResponse();for(int j=0;j<strResponseCode.Length;j++)
{
if (smtpcMail.DoesStringContainSMTPCode(strResponseNumber,strResponseCode[j]))
{
this.strResponse += strResponseNumber;
this.strResponse += "<br>";
break;
}
else
{
if(j==strResponseCode.Length-1)
{
this.strErrMessage += strResponseNumber;
this.strErrMessage += strSendBuffer[i];
return;
}
}
}i++ ;
} // 结束循环
}
catch(SocketException err)
{
this.strErrMessage += err.Message + " " + err.StackTrace;
}
catch(Exception e)
{
this.strErrMessage += e.Message + " " + e.StackTrace;
}
} //结束邮件发送方法} // 结束类
} // 结束Namespace
邮件发送前台页面
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test.SendMailSample" %>
<HTML>
<HEAD>
<title>邮件发送例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">TD {
FONT-SIZE: 9pt; FONT-FAMILY: "宋体"
}
.TextBox {
BORDER-RIGHT: #000000 thin dashed; BORDER-TOP: #000000 thin dashed; BORDER-LEFT: #000000 thin dashed; BORDER-BOTTOM: #000000 thin dashed
}
</style>
</HEAD>
<body text="#000000" bgColor="#ffffff">
<form runat="server">
<table style="BORDER-COLLAPSE: collapse" borderColor="#111111" cellSpacing="0" cellPadding="3" width="500" align="center" border="1">
<tr>
<td align="middle" colSpan="2">邮件发送例子(SOCKET类)</td>
</tr>
<asp:panel id="pelMessage" Visible="False" Runat="server">
<TR>
<TD align="middle" colSpan="2">
<asp:Label id="lblMessage" runat="server"></asp:Label></TD>
</TR>
</asp:panel>
<tr>
<td align="right" width="150">SMTP服务器:</td>
<td width="350"><asp:textbox id="txtSmtpHost" runat="server" CssClass="TextBox" MaxLength="50"></asp:textbox><asp:requiredfieldvalidator id="rfvSmtpHost" runat="server" ErrorMessage="*" ControlToValidate="txtSmtpHost" Display="Dynamic"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="right" width="150">SMTP服务器端口:</td>
<td width="350"><asp:textbox id="txtPort" runat="server" CssClass="TextBox" MaxLength="6"></asp:textbox><asp:requiredfieldvalidator id="rfvPort" runat="server" ErrorMessage="*" ControlToValidate="txtPort" Display="Dynamic"></asp:requiredfieldvalidator><asp:regularexpressionvalidator id="revPort" runat="server" ErrorMessage="只能输入数字" ValidationExpression="/d{1,}" ControlToValidate="txtPort" Display="Dynamic"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td align="right" width="150">邮件发送者:</td>
<td width="350"><asp:textbox id="txtFrom" runat="server" CssClass="TextBox" MaxLength="50"></asp:textbox><asp:requiredfieldvalidator id="rfvFrom" runat="server" ErrorMessage="*" ControlToValidate="txtFrom" Display="Dynamic"></asp:requiredfieldvalidator>
<asp:regularexpressionvalidator id="revFrom" runat="server" ErrorMessage="邮件格式错误" ValidationExpression="/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*" ControlToValidate="txtFrom" Display="Dynamic"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td align="right" width="150">发送者显示名称:</td>
<td width="350"><asp:textbox id="txtFromName" runat="server" CssClass="TextBox" MaxLength="20"></asp:textbox></td>
</tr>
<tr>
<td align="right" width="150">邮件接收者:</td>
<td width="350"><asp:textbox id="txtTo" runat="server" CssClass="TextBox" MaxLength="50"></asp:textbox><asp:requiredfieldvalidator id="rfvTo" runat="server" ErrorMessage="*" ControlToValidate="txtTo" Display="Dynamic"></asp:requiredfieldvalidator>
<asp:regularexpressionvalidator id="revTo" runat="server" ErrorMessage="邮件格式错误" ValidationExpression="/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*" ControlToValidate="txtTo" Display="Dynamic"></asp:regularexpressionvalidator></td>
</tr>
<tr>
<td align="right" width="150">接收者显示名称:</td>
<td width="350"><asp:textbox id="txtToName" runat="server" CssClass="TextBox" MaxLength="20"></asp:textbox></td>
</tr>
<tr>
<td align="right" width="150">邮件发送优先级:</td>
<td width="350"><asp:dropdownlist id="ddlPriority" runat="server">
<asp:ListItem Value="高">高</asp:ListItem>
<asp:ListItem Value="默认" Selected="True">默认</asp:ListItem>
<asp:ListItem Value="低">低</asp:ListItem>
</asp:dropdownlist></td>
</tr>
<tr>
<td align="right" width="150">发送HTML格式的邮件:</td>
<td width="350"><asp:dropdownlist id="ddlHtml" runat="server">
<asp:ListItem Value="是" Selected="True">是</asp:ListItem>
<asp:ListItem Value="否">否</asp:ListItem>
</asp:dropdownlist></td>
</tr>
<tr>
<td align="right" width="150">邮件主题:</td>
<td width="350"><asp:textbox id="txtSubject" runat="server" CssClass="TextBox" MaxLength="50"></asp:textbox>
<asp:RequiredFieldValidator id="rfvSubject" runat="server" ErrorMessage="*" ControlToValidate="txtSubject" Display="Dynamic"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td align="right" width="150">邮件内容:</td>
<td width="350">
<asp:textbox id="txtMessage" runat="server" Rows="15" TextMode="MultiLine" CssClass="TextBox" Columns="40"></asp:textbox>
<asp:RequiredFieldValidator id="rfvMessage" runat="server" ErrorMessage="*" ControlToValidate="txtMessage" Display="Dynamic"></asp:RequiredFieldValidator>
</td>
</tr>
<tr align="middle">
<td colSpan="2">
<asp:Button id="btnSendMail" runat="server" Text="发送邮件" CssClass="TextBox" BackColor="Silver" ForeColor="Blue"></asp:Button>
</td>
</tr>
</table>
</form>
</body>
</HTML>
邮件发送Codebehindusing System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Blood.Com.ClassLib;namespace Test
{
/// <summary>
/// 邮件发送例子
/// </summary>
public class SendMailSample : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.DropDownList ddlPriority;
protected System.Web.UI.WebControls.DropDownList ddlHtml;
protected System.Web.UI.WebControls.TextBox txtSmtpHost;
protected System.Web.UI.WebControls.TextBox txtPort;
protected System.Web.UI.WebControls.TextBox txtFrom;
protected System.Web.UI.WebControls.TextBox txtFromName;
protected System.Web.UI.WebControls.TextBox txtTo;
protected System.Web.UI.WebControls.TextBox txtToName;
protected System.Web.UI.WebControls.TextBox txtSubject;
protected System.Web.UI.WebControls.TextBox txtMessage;
protected System.Web.UI.WebControls.RegularExpressionValidator revPort;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvSmtpHost;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvPort;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvFrom;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvTo;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvSubject;
protected System.Web.UI.WebControls.RequiredFieldValidator rfvMessage;
protected System.Web.UI.WebControls.Button btnSendMail;
protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.RegularExpressionValidator revFrom;
protected System.Web.UI.WebControls.RegularExpressionValidator revTo;
protected System.Web.UI.WebControls.Panel pelMessage;private void Page_Load(object sender, System.EventArgs e)
{
}#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnSendMail.Click += new System.EventHandler(this.btnSendMail_Click);
this.Load += new System.EventHandler(this.Page_Load);}
#endregionprivate void btnSendMail_Click(object sender, System.EventArgs e)
{
if(IsPostBack)
{
SMTPMail clsMail = new SMTPMail();
string strSmtpHost = txtSmtpHost.Text;
int intPort = Int32.Parse(txtPort.Text);
string strFrom = txtFrom.Text;
string strFromName = txtFromName.Text;
string strTo = txtTo.Text;
string strToName = txtToName.Text;
SMTPMail.Prioritys Priority = SMTPMail.Prioritys.NORMAL;
bool bolHtml;
string strSubject = txtSubject.Text;
string strMessage = txtMessage.Text;
if(ddlPriority.SelectedItem.Text == "默认")
{
Priority = SMTPMail.Prioritys.NORMAL;
}
else if(ddlPriority.SelectedItem.Text == "高")
{
Priority = SMTPMail.Prioritys.HIGH;
}
else if(ddlPriority.SelectedItem.Text == "低")
{
Priority = SMTPMail.Prioritys.LOW;
}
if(ddlHtml.SelectedItem.Text == "是")
{
bolHtml = true;
}
else
{
bolHtml = false;
}
clsMail.SendMail(strSmtpHost,intPort,strFrom,strFromName,strTo,strToName,Priority,bolHtml,"",strSubject,strMessage);
if(clsMail.ErrorMessage !="")
{
pelMessage.Visible = true;
lblMessage.Text = clsMail.ErrorMessage;
lblMessage.ForeColor = System.Drawing.Color.Red;
}
else
{
pelMessage.Visible = true;
lblMessage.Text = "邮件发送成功";
lblMessage.ForeColor = System.Drawing.Color.Blue;
}
}
}
}
}
相关文章:
手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的
作者 | 写代码的明哥来源 | Python编程时光这篇文章本应该是属于 HTTP 里的一部分内容,但是我看内容也挺多的,就单独划分一篇文章来讲下。什么是跨域请求要明白什么叫跨域请求,首先得知道什么叫域。域,是指由 协议 域名 端口号 …

WYSE Thin Clinet 常用快捷键
1. 同时按住Ctrl Alt Up(向上方向键),即可将远程连接由全屏状态切换到Window状态2. 同时按住Ctrl Alt Down(向下方向键),即可在远程连接进程间切换(类似于Windows系统的Alt Tab功能&…
CSS3模拟IOS滑动开关
前言 H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释效果 代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>CSS3模拟IOS开关</title> <style t…
PyTorch 1.6、TensorFlow 2.3、Pandas 1.1同日发布!都有哪些新特性?
作者 | 肖智清出品 | AI科技大本营(ID:rgznai100)7月29日,PyTorch 1.6、TenorFlow 2.3、Pandas 1.1恰巧同时发布。这三个库都是定期滚动更新,大约每个季度更新一次小版本。在AI内卷化达到“灰飞烟灭”的今日,仅仅会对P…

ENC28j60以太网芯片驱动程序简介
转载: 本介绍可分为三块内容: 1.以太网数据帧结构 符合IEEE802.3标准的以太网帧的长度是介于64-1516字节之间。主要由目标MAC地址、源MAC地址、类型/长度字段、数据有效负载、可选填充字段和循环冗余校验组成,另外在通过以太网介质发送数据包…

在ASP.NET中获取文件属性
www.chinacs.net 2001-8-13 中文C#技术站 在ASP.NET中获取文件属性(Retrieving File Information In ASP.NET)By Steven Smith 使用ASP.NET我们可以很容易的得到文件的相关信息,包括:文件名、路径、扩展名、大小和创建以及使用日…

javascript运动系列第九篇——碰撞运动
前面的话 碰撞可以分为碰壁和互碰两种形式,上篇介绍了碰壁运动,本文将从浅入深地介绍碰撞运动的互碰形式 碰撞检测 对于互碰形式的碰撞运动来说,首先要解决的是碰撞检测。对于矩形元素的碰撞检测前面的博文已经详细介绍过,下面主要…

Asp.Net 使用 GDI+ 绘制3D饼图入门篇源码
出处:www.knowsky.com 作者:www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> topn3dpie.aspx------------------<% Page language"c#" CodeBehind"topn3dpie.aspx.cs" AutoEventW…

【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7405479作者:毛星云 邮箱: happylifemxyqq.com 欢迎邮件交流编程心得上一节我们讲解了键盘消息处理相关的知识。键盘加鼠标作为目前人机交互…
当最懂 5G 的中国移动遇见云,移动云专题赛正式启动!
根据《中国云计算产业发展白皮书》预测,2023年中国云计算产业规模将超过3000亿人民币,其中,中国政府和企业上云率将超过60%。在国家新基建战略的大力推动下,5G和云计算迎来了巨大的发展契机。作为中国移动5G战略的重要组成部分&am…

spring配置文件详解【总结】
知其然,知其所以然 <?xml version"1.0" encoding"UTF-8"?> <beans:beans xmlns"http://www.springframework.org/schema/mvc" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

ucontext实现的用户级多线程框架3(实现echo服务器)
前面一篇文章实现了一个抢先式的用户级多线程框架,现在用那个框架编写一个echo服务, 因为只是个实验,所以代码写得比较杂乱,还有很多可能出错的情况也没有处理,这些在今后的进一 步研究中都会慢慢修改,下面…

asp.net 2.0中用GRIDVIEW插入新记录
出处:www.knowsky.com 作者:www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> name"mq" marginwidth"0" marginheight"0" src"../../ad.html" frameborder"no…
我在攻克机器学习硕士学位的那些年
编者按:人工智能发展日趋成熟,也成为众多开发者职业生涯的首选方向。然而相较于其他领域,人工智能中的深度学习、机器学习、计算视觉、神经网络等技术更为错综复杂,进修难度也更胜一筹。对此,对于入门和想要进阶的学生…
POJ 3174 暴力枚举
思路: 暴力枚举三个点 判一判 搞定 (x1*y1x2*y2) x1、y1、x2、y2为他们两两的差 //By SiriusRen #include <cstdio> using namespace std; int n,cnt; struct Point{int x,y;}point[888]; struct ans{int x,y,z;}ans[888]; int main…
TensorFlow、PyTorch夹缝之下:后浪的进击和野望
作者 | Just出品 | AI科技大本营(rgznai100)“我发现,软件研发总会延期。”一流科技CEO袁进辉说。按照他的预期,深度学习框架OneFlow做两年就能开源给开发者检验,但时间向后延长了近一年半,“确实预计的不准…

在Win 2003中配置ASP.net环境
作者:未知大家知道,Microsoft为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS6.0 安装到 Windows Server 2003 家族的成员上。而且,当我们最初安装 IIS6.0 时,该服务在高度安全和"锁定…

网页中的数学公式
无意中发现一个在网页中显示数学公式的解决方案,MathJax,太崇拜这些人了!他们才是真正地IT人,哪像国内我们这些民工? 代码如下: <!DOCTYPE html><html><head><title>MathJax AsciiMath Test P…

php删除目录下的所有文件和目录
<?php /*** 递归实现删除目录下的所有的文件和文件夹* param $dir 要删除的目录* param bool $deleteRootToo 是否删除根目录 默认不删除http://www.manongjc.com/article/1333.html*/ function unlinkRecursive($dir, $deleteRootToo false) {if(!$dh opendir($dir)){re…

DZX2无法读取会员短消息
我们在升级Discuz论坛时,如果没升级好,可能会出现各种各样的问题。比如登陆会员,但点“短消息”会出现错误,如下:提示:UCenter info: MySQL Query ErrorSQL:SELECT COUNT(*) FROM [Table]pm_members m WHER…

ASP.NET 如何操作文件
本文由chenyangasp版权所有,可以转载,复制,粘贴,并请注明出处,但不得修改! 在asp.net操作文件的所有concept都在system.io namespace中,这个namespace包含读写操作文件所必需的类。 本文将详细…
摊牌了:我就靠这几点,搞定了算法面试官
很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试!为什么?1. 你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂。2. 你在面试的时候,卡壳了…

Spoooooky CSS 选择器
2019独角兽企业重金招聘Python工程师标准>>> 让我们今年有一些万圣节主题的帖子精神!我会从超过 GRAVE.eR.CSS选择器中挑选一些将冻结你骨头的选择器。也许不可能,但他们至少有点怪异。 迟钝的猫头鹰选择器(the lobotomized owl s…

关于无法创建aps.web项目的解决办法
出处:CSDN 作者:ahking <script languageJavaScript src"/ad/ad.js"></script> 1、当站点主目录没有创建应用程序: 通过FP扩展虚拟目录的方式来建立WEBAPP,步骤如下: (1)、右击站…

国内ntp时间服务器ip地址
NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用…
谷歌顶级量子科学家详述他为何从谷歌辞职
加州大学圣塔芭芭拉分校(UCSB)的教授John Martinis作者 | Paul Smith-Goodson译者 | 天道酬勤,责编 | Carol 约翰马丁尼斯(John Martinis)教授从Google辞职的消息在整个量子学界引起了轩然大波。消息宣布几天后&#x…

论文笔记之:Generative Adversarial Text to Image Synthesis
Generative Adversarial Text to Image Synthesis ICML 2016 摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的进行无监督学习。 Attribute Representation: 是一个非常具有意思的方向。由图像到文本,可…

ADO.NET 2.0 中的架构
Bob BeaucheminDevelopMentor 适用于:Microsoft ADO.NET 2.0Microsoft Visual Studio 2005C# 编程语言 摘要:了解在 ADO.NET 中对于从您的数据源访问元数据的增强支持。下载相关的 SchemasSample.exe 示例代码。 本页内容 深入了解新的公共元数据 API究…

Android实现程序前后台切换效果
本文演示如何在Android中实现程序前后台切换效果。 在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识。 我们都知道,一个Activity 可以启动另一个Activity,即使这个Activity是定义在别一个应用程序里的,比如说,…
如果特斯拉制造相机的梦想像激光雷达一样真正实现,它可能会帮助到更多同行...
这张来自伪激光雷达论文的图片显示了旧的黄色实点云作者 | Brad Templeton译者 | 天道酬勤,责编 | Carol特斯拉 CEO 埃隆马斯克(Elon Musk)对自动驾驶激光雷达(3D图像技术)的看法是众所周知的。他不打算在特斯拉里使用…