仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1132|回复: 9
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之ASP.NET教程:浅谈Asp.net完成的邮件发送...

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
数据挖掘有点高深的,主要估计就是使用一些算法提取一些实用的数据。学好数据挖掘的话可以应聘baidu或者google,但是一般人家对算法的要求听高的。你最好还是学点应用型的吧。这种主要是研究型的。</p>用asp.net发送Email已不是一件奇怪的事变了.能够接纳良多种办法来发送,好比SmtpMail办法,Socket办法,经由过程第三方组件Jmail等体例都能够.可是本文会商的不是发送邮件接纳的手艺,而是经由过程公司的一个项目(手机主题)理论说说邮件引擎的架构,有不敷和改善的地方,接待偕行品评斧正.
我们之前发送邮件的时分接纳的办法就是,在页面内里触发举行发送,好比注册了会员,点了提交按钮以后,将会员数据拔出到数据库,然落后行发送.这类办法固然复杂便利,可是有一个缺点,假如邮件发送失利,就不克不及重发了.因而,在我们项目中接纳的办法是,将必要发送的邮件一致拔出到一个邮件行列,然后由引擎来处置这个行列.详细的做法是,数据库计划:
Win_EmailQueue(邮件行列表)
QueueIdint主动编号,主键Id
ToEmailnvarchar(100)收件人
Titlenvarchar(100)邮件题目
Contentntext邮件内容
AddDatedatetime增加工夫
TryTimesint毛病重试次数
LastSendTimedatetime最初一次发送的工夫
Statusint形态:0未发送1已发送
必要发送邮件的时分,如注册会员乐成后,将邮件的内容拔出到表中.
邮件引擎能够用一个体系服务来完成,安装在Web服务器统一台服务器下面,也能够依据负载实践情形安装在别的一台服务器下面,加重Web服务器包袱.邮件引擎的义务是距离一个工夫(好比5秒),查询邮件行列,依据工夫按次发送邮件,为了下降引擎的包袱,能够设置每次发送15封,固然这个数字要依据实践情形来设置.
以下是处置行列和发送邮件的一些代码.
///
///发送Email行列,来自手机主题http://www.shouji138.com
///
publicstaticvoidSendEmailQueue()
{
//取最新的15条未乐成的举行发送。
stringsql="selecttop15*fromWin_EmailQueuewhereStatus=0andToEmailorderbyAddDatedesc";
DataTabledt=DbHelperSQL.Query(sql).Tables[0];
for(inti=0;i<dt.Rows.Count;i++)
{
stringtitle=dt.Rows[i]["Title"].ToString();
stringcontent=dt.Rows[i]["Content"].ToString();
stringto=dt.Rows[i]["ToEmail"].ToString();
stringCreateTime=dt.Rows[i]["AddDate"].ToString();
stringQueueID=dt.Rows[i]["QueueID"].ToString();
boolflag=EmailUtil.Send(title,to,content);
if(flag)
{
//发送乐成,将Status设置为1
sql="updateWin_EmailQueuesetStatus=1whereQueueID="+QueueID+"";
}
else
{
//发送失利,将失利次数增添1
sql="updateWin_EmailQueuesetTryTimes=TryTimes+1,LastSendTime="+DateTime.Now.ToString()+"whereQueueID="+QueueID+"";
}
DbHelperSQL.ExecuteSql(sql);
}
dt.Dispose();
//凌驾10次未乐成的邮件,将不再发送
sql="updateWin_EmailQueuesetStatus=1whereTryTimes>10";
DbHelperSQL.ExecuteSql(sql);
}
///
///实行发送操纵,来自手机主题http://www.shouji138.com
///
///
publicstaticboolSend(stringtitle,stringto,stringcontent)
{
//来自设置项
stringfromemail=System.Configuration.ConfigurationManager.AppSettings["SMTPUserName"];
stringsmtpserver=System.Configuration.ConfigurationManager.AppSettings["SMTPServer"];
stringfrompwd=System.Configuration.ConfigurationManager.AppSettings["SMTPPass"];
stringfromaddress=System.Configuration.ConfigurationManager.AppSettings["SMTPNickName"];
MailMessagemail=newMailMessage();
mail.From=newMailAddress(fromemail,fromaddress,Encoding.GetEncoding("gb2312"));//发件人的邮箱
mail.To.Add(newMailAddress(to));//收件人
mail.Subject=title;//主题
mail.Body=content;//内容
mail.IsBodyHtml=true;
mail.SubjectEncoding=Encoding.GetEncoding("gb2312");
mail.BodyEncoding=Encoding.GetEncoding("gb2312");
mail.IsBodyHtml=true;
mail.Priority=MailPriority.Normal;
SmtpClientsc=newSmtpClient(smtpserver);//发邮件的服务器手机主题http://www.shouji138.com
NetworkCredentialnc=newNetworkCredential(fromemail,frompwd);//请求的帐户信息
sc.Credentials=nc;
boolsuccessflag;
try
{
sc.Send(mail);
successflag=true;
}
catch
{
successflag=false;
}
returnsuccessflag;
}
在假造主机中,也能够接纳首页加载一个script页面,这个页面来充任邮件引擎.代码以下:
ajax/ajaxm.aspx
protectedvoidPage_Load(objectsender,EventArgse)
{
try
{
Email.SendEmailQueue();//发送邮件
}
catch(Exceptionex)
{
Log.SaveException(ex);//保留毛病日记
}
Response.Write("");
Response.End();
}
然后在首页大概内页,拔出代码及可.

今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-16 23:51:12 | 只看该作者

ASP.NET网页编程之ASP.NET教程:浅谈Asp.net完成的邮件发送...

我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-20 12:38:58 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
老尸 该用户已被删除
地板
发表于 2015-1-29 07:09:39 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
活着的死人 该用户已被删除
5#
发表于 2015-2-5 23:57:11 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
莫相离 该用户已被删除
6#
发表于 2015-2-14 09:47:20 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
透明 该用户已被删除
7#
发表于 2015-3-4 05:26:55 | 只看该作者
那么,ASP.Net有哪些改进呢?
蒙在股里 该用户已被删除
8#
发表于 2015-3-11 17:31:47 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
谁可相欹 该用户已被删除
9#
发表于 2015-3-19 03:51:06 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
柔情似水 该用户已被删除
10#
发表于 2015-3-27 07:10:27 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 05:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表