知识大全 用ASP.NET设计高效邮件列表
Posted 知
篇首语:一锹挖不成水井,一天盖不成罗马城。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用ASP.NET设计高效邮件列表相关的知识,希望对你有一定的参考价值。
用ASP.NET设计高效邮件列表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一个吸引人的 功能完备的网站往往具有以下特征 一是内容充实 实用 吸引对该类内容干兴趣的浏览者 二是页面设置合理 页面设计精美 三是网站互动性强 用户和网站或者用户与用户之间交流方便高效 四是网站内容更新及时并且可以第一时间通知用户 以上这些特点可能对于一些大型的门户网站而言 不是特别适合 因为门户网站的特点 用户流量往往不是内容的区别而是用户习惯 历史原因和地域区别(比如广东地区的浏览者喜欢网易 北京的喜欢新浪) 而对于一般个人网站或者企业网站而言 以上特点就显得特别重要 因为这类网站内容更新不是很快 浏览者来这些网站往往具有特定目的性(比如寻找特定领域的资料或者产品信息) 当网站内容吸引到用户以后 网站的更新信息或者网站最新新闻就有必要及时通知浏览者 以此来紧紧抓住浏览者 培养浏览者的 浏览忠诚度 这就是网站邮件列表的作用
一 邮件列表作用和工作方式 邮件列表是什么呢?邮件列表就是网站或者机构为了及时通知信息给相关用户 将这些用户的电子邮件保存并且在有信息需要发送的时候将信息分别发送给所有用户 表面上 邮件列表和发送电子邮件的时候使用的 附送 密送 差不多 基本没什么差别 其实 它们还是有差别的 ( )邮件列表具有明确的发行目的 发送邮件列表就是为了发送特定信息给特定用户 ( )邮件列表接受人不能取得其他接受人的资料 这一点是邮件列表和电子邮件附送的最大区别 我们知道 当我们收到一些电子邮件的时候 发现在邮件的 附送 栏有很多其他用户的邮件地址 这就是通过 附送 方式将邮件发送给一系列用户 而通过邮件列表发送的邮件 用户感觉就是发送人单独发送给用户的 不能看见其他用户的信息 当然 实质也是这样发送的 这样 我们就可以知道邮件列表的工作方式其实是将每个用户的电子邮件取出 然后逐个发送相同的信息
邮件列表既然是单独逐个发送信息 那么 肯定我们不能通过手工一个个发送 只能通过软件来发送 现在 邮件列表的发送以下几种方式 一是通过专门的邮件群发软件来实现 这些软件将所有电子邮件地址读入 然后逐个发送 这些软件的优点是可以针对具体用户改变邮件主题信息或者发送人邮箱 缺点是往往这些软件需要注册费用 二是通过专门的邮件列表服务提供网站实现 这些网站通过程序帮助邮件列表发行者将信息发送给订阅者 这是个人用户使用最多的一种方式 这种方式的优点是简单 免费 缺点是往往这些服务提供网站性能不是很稳定 邮件延迟情况时常发生 三是通过自己的网站设计一个邮件列表程序 自己管理 这样的优点是发送信息高效 管理方便 缺点是技术实现稍微优点困难 不是很适合一般用户 我们在这里就介绍通过ASP NET编程实现一个功能完备的邮件列表
二 邮件列表的设计 在设计之前我们必须知道一点 邮件列表的所有电子邮件地址必须保存成为一个文件 这里 我们将所有电子邮件地址保存在Access数据库中 这样可以很方便的对邮件地址进行增加 修改 删除等操作 在这里 我们的数据库名为mail mdb 位于data目录下 数据表名为mail 只有一个字段 mail 用于保存电子邮件地址
作为一个长期的网站功能 我们当然要求没发送以此邮件都必须有详细的发送记录和每个邮件的发送情况 这里 我们在程序中会自动在log目录使用发送邮件的主题为文件名生产一个HTML格式的Log日志文件
现在 我们已经基本了解了程序的功能和文件结构 我们来看程序代码 <%@ Page Language= VB Debug= True Explicit= True %> <%@ Import Namespace= System Data %> <%@ Import Namespace= System Data OleDb %> <%@ Import Namespace= System Web Mail %> <%@ Import Namespace= System IO %>
<>
<head> <meta equiv= Content Language content= zh cn > <meta equiv= Content Type content= text/ charset=gb > <title>邮件列表</title>
<style> <!——a linkcolor # FF text decoration none font size pt a visitedcolor # text decoration none font size pt a activedcolor #FF font size pt a hovercolor #FF font size pt tablefont size pt ——> </style>
</head>
<body>
<SCRIPT language=VB RUNAT= server > Sub SendMail(Obj As Object E As EventArgs)
lbmsg Text=
Dim mailObj AS new MailMessage Dim smtp AS new SmtpMail 定义SMTP服务器的名称Smtp smtpserver= 定义邮件的发送地址mailObj From=sendmailbox value 定义邮件的接收地址Dim conn AS OleDbConnection conn=connectdb( data\\mail mdb )
conn open()
Dim reader As oledbdatareader reader=readdb(conn select * from mail )
while (reader read())
try mailObj To=reader( mail )
mailObj Subject =subject value mailObj Body =content value 默认发送邮件格式为纯文本TEXT 如果选择HTML格式 设置为HTML格式if mode value= HTML then mailObj BodyFormat=MailFormat Html end if 设置邮件发送级别为高mailObj Priority = MailPriority High
Smtp Send(mailObj)
lbmsg text=lbmsg text+reader( mail )+ OK!Time +Now() ToString()+ <br> catch er as Exception lbmsg text=lbmsg text+ssage+ <br> finally
End Try End While reader close()
Dim strwriterobj As StreamWriter try strwriterobj= File CreateText(Server MapPath( log\\ )+subject value+ )
strwriterobj Write( <HTML><head><meta equiv= Content Language content= zh cn ><meta equiv= Content Type content= text/ charset=gb ></head><BODY> +lbmsg text+ </BODY></HTML> )
catch er as Exception lbmsg text=lbmsg text+ssage+ <br> finally strwriterobj close lbmsg text=lbmsg text+ 日志保存成功!保存目录 <br> +Server MapPath( log\\ )+subject value+ End Try
End Sub
链接数据库 Function ConnectDB(txtdatabase AS String) As Oledbconnection Dim conn AS OledbConnection Dim connstr As String connstr= Provider=Microsoft Jet OLEDB Persist Security Info=False Data Source= +Server MapPath(txtdatabase)
connectdb=New OledbConnection(connstr)
End Function
读取一条记录Function readdb(conn As Oledbconnection txtsql As String) As OledbDataReader Dim cmd As OledbCommand cmd=new oledbmand(txtsql conn)
readdb=cmd executereader()
End Function </SCRIPT>
<p align= center ><font size= face= 楷体_GB >邮件列表</font></p> <hr width= % size= > <div align= center > <center> <table border= width= > <tr> <td width= % > <form method= POST runat= Server > <table border= width= % height= > <tr> <td width= % align= right height= > 发送邮箱 </td> <td width= % height= ><input type= text name= sendmailbox id= sendmailbox size= runat= Server /></td> </tr> <tr> <td width= % align= right height= > 标题 </td> <td width= % height= ><input type= text name= subject id= subject size= runat= Server /></td> </tr> <tr> <td width= % align= right height= >内容 </td> <td width= % height= ><textarea rows= name= content cols= id= content runat= Server /></textarea></td> </tr> <tr> <td width= % align= right height= >方式 </td> <td width= % height= ><select size= name= mode id= mode runat= Server > <option value= Text selected>Text</option> <option value= HTML >HTML</option> </select></td> </tr> </table> <p align= center ><input type= button value= 提 交 name= ok onserverclick= sendmail runat= Server /></p> </form> <ASP Label id= lbmsg runat= Server /> <p> </td> </tr> <tr> <td width= % ></td> </tr> </table> </center> </div>
</body>
</>
程序运行界面如下(图一)
在以上的程序中 我们将一些比较常见的功能设置成为函数 在主体程序中直接调用这些函数 这样 程序看起来比较简洁 修改也很简单 在这里 我们简单介绍一下这些函数 一是连接数据库的ConnectDB(txtdatabase AS String) 这个函数使用Access数据库的相对位置作为函数参数 返回数据库连接OleDbConnection 函数readdb(conn As Oledbconnection txtsql As String)可以直接执行一条SQL语句 返回OledbDataReader 在程序中 我们将每一个邮件发送的结果保存并且最好生成一个HTML格式的日志文件 因为程序中我们用到了数据库 电子邮件和文件操作 以此 在引入名字空间的时候 我们需要将 System Data OleDb System Web Mail 和 System IO 引入
在使用以上邮件列表程序的时候 我们需要注意几个问题 第一是Smtp服务器的设置 我们知道 Smtp服务器是邮件发送服务器 而现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务 在发送邮件的时候 需要验证用户信息 而我们看到 在以上的程序中甚至整个ASP NET的邮件部分 根本没有考虑Smtp用户验证问题 以此 我们不能随便使用一个Smtp服务器 而必须使用完全免费的Smtp服务器 这样的服务器现在已经很少了 所以 如果有条件 最好我们自己设置计算机为Smtp服务器 怎样实现 我们可以下载EasyMail等软件 第二是邮件发送速度问题 如果Smtp服务器在本地计算机 发送速度很快的 基本上不用担心 如果不是本地服务器 那么发送的时候最好不要以此太多 一是速度问题 二是以此发送太多邮件 Smtp服务器可能认为是垃圾邮件而拒绝服务 这一点我们可以自己试验 第三是邮件发送发送人的设定问题 通过这个程序或者说通过使用ASP NET的邮件功能 我们完全可以在邮件发送人随意写 这样 很容易别有用心的人就可以通过这个功能来发送垃圾邮件 当然 这些邮件追查来源很简单 直接查IP就可以 随意 我们最好不要随意发送
cha138/Article/program/net/201311/13558相关参考
ASP.NET发邮件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! usingSystemusi
ASP.NET定时发送邮件总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 香港那边公司的市场
ASP.NET自动发送邮件功能的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 有时我们需要
我们经常看到在一些博客页面里可以发表评论通过电子邮件通知版主(例如咱们的博客园)那么如何用发送电子邮件呢?我们可以借助NET提供的强大的类库达到目的 首先我们要引入SystemWebMail命名
ASP.Net2.0发送邮件的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
ASP.NET优化在线用户列表精确版 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近所做的一
在ASP.NET中使用SmtpMail发送邮件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
ASP.NET项目开发指南:博客列表(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
ASP.NET项目开发指南:博客列表(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
ASP.NET项目开发指南:新闻列表[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb