基于.NET平台的邮件群发系统研究-精品资料
本文档格式为WORD,感谢你的阅读。
最新最全的学术论文期刊文献年终总结年终报告工作总结个人总结述职报告实习报告单位总结
摘要为了更好地实现邮件群发提出了利用委托机制实现客户端实时监控邮件的发送情况、利用多个发送者的轮询机制实现了发送的可靠性、利用反射机制实现了自适应不同数据库服务器的切换、利用多线程异步调用机制实现性能的提高、利用过滤机制分别处理格式不正确的发送者和接收者邮箱的设计思路。此研究保证了接收者只会接收一份相同邮件能实时反映邮件的发送情况具有实际借鉴价值。
关键词关键词 邮件群发实时监控反射机制
TP302A16727800 2013 011005002
0引言
邮件群发被广泛应用于电子商务和办公系统等领域中已成为提高企业竞争力和影响力的一种重要手段。 .NET环境下的System.Net.Mail命名空间包含用于将电子邮件发送到简单邮件传输协议 SMTP 服务器进行传送的类其中MailMessage类表示邮件的内容 SmtpClient类将电子邮件传输到指定用于邮件传送的SMTP主机 Attachment类用于创建邮件附件。文献[2-6]主要研究了如何实现邮件群发但是对于邮件群发的可靠性和实时监控等方面涉及较少。本文提出了“委托+轮询+反射+异步+过滤”等机制实现了邮件群发的实际需求。
1利用委托实现实时监控
实时监控就是要在邮件群发过程中实时反映邮件发送状况包括发送进度、 已经发送个数、需发总数、失败个数信息发送完毕后弹出结果消息框具体情况如图1所示。
图1邮件发送及实时监控界面
由于系统采用表示层、业务层和数据访问层三层架构而邮件发送是在业务层实现和调用的那么如何在业务层调用的位置去实时控制表示层的相关进度控件呢解决办法就是利用委托实现回调 回调的方法在界面层注册实现可以实时控制界面进度控件。而回调的触发事件通过发送邮件的方法调用具体思路如图2所示。
图2委托实现实时监控
2利用轮询实现可靠性
可靠性指要保证每个接收者能接收到并且只会接收一份相同邮件。当进行邮件群发的时候 邮件服务器可能来不及接收或者以为是垃圾邮件拒绝接收。本文采用了两种解决措施一是使用多个发送者减少被邮件服务器认为垃圾邮件的可能性二是对发送失败的邮件可以继续不断发送。两种措施都需要进行轮询发送每个发送者按周期T发送给T个接收者接着下一个发送者发送直至所有接收者都被发送一次发送完毕。对于失败的邮件也是这样轮询发送。算法思路如图3所示失败邮件发送如图4所示。
3利用反射机制实现自适应不同数据库服务器切换邮件的发送者和接受者信息都存放在数据库中而不同客户可能使用不同的数据库服务器需要考虑数据库服务器的可移植性如从SqlServer切换成Oracle这主要通过反射机制来实现。 IDAL组件中定义了数据访问接口 SQLServerDAL和OracleDAL等组件是依据不同的数据库服务器对IDAL的具体实现而具体实现依赖DBUtility组件该组件中包含了SQLServerHelper和OracleHelp等具体数据库服务器引擎组件代码 DALFactory工厂组件利用反射机制、配置文件和静
态工厂模式动态产生数据访问组件对象设计思路如图5所示。
利用反射机制实现的主要代码如下namespace DALFactory{public sealed class DataAccess {private static readonly string path =
ConfigurationManager.AppSettings["DALAssembly"] public static IDAL. IEmail CreateEmail {string className=path+".Email"return IDAL. IEmail Assembly.Load
path .CreateInstance className
} …
图5反射机制实现数据库服务器切换
4其它
为了提高邮件群发的性能使用了异步调用发送机制在邮件发送完毕的回调方法中实现对界面进度条的回调。
//注册异步发送的回调方法client.SendCompleted += new
SendCompletedEventHandler client_SendCompleted
AsyncArgs asyncArgs= new AsyncArgs asyncArgs. emailData = emailDataasyncArgs. cpBar = cpBarclient.SendAsync message asyncArgs //异步发送邮件static void client_SendCompleted objectsender
System.ComponentModel.AsyncCompletedEventArgse {
AsyncArgs asyncArgs = AsyncArgs e.UserStateif e.Error == null {
//发送成功处理}
else {
//发送失败处理}asyncArgs. cpBar.BarChange //事件触发 回调winform中订阅方法
过滤机制主要使用正则表达式对发送和接收邮件的格式进行验证若发送邮件格式错误则在数据库中打上错误标记处理下一个发送者并在发送失败邮件功能中不再使用该发送者若是接收邮件格式错误也打上标记并回调界面进度条处理下一个接收者。
5结语
邮件群发首先要考虑发送的可靠性避免接收者没有收到或者多收邮件。虽然系统使用轮询机制进行了处理但是通过企业自己的邮件服务器发送效果会更好。
阅读相关文档:基于单片机的三相正弦波发生器设计 基于结构矩阵软的件需求变化追溯方法研究 最严格水资源管理制度的和谐论解读 从活动理论框架看我国协作学习模式发展 基于综合性研究视角的数字图书馆价值探析大学生社交网络应用现状调查研究 领域本体支持下的语义查询扩展研究基于互联网技术与可靠度理论的教学管理实证分析与应用研究 Flash中无法导入声音的解决办法研究 一种高效率的.NET平台Excel文件控制方法专家评价网络信息服务平台构建研究 《数据结构》学习方法探析 南水北调中线明渠工程运行风险评价方法研究 国际物流集团数据交换平台架构与实现 基于Flex技术的信息展示平台应用研究
最新最全【学术论文】 【总结报告】 【演讲致辞】 【领导讲话】 【心得体会】【党建材料】 【常用范文】 【分析报告】 【应用文档】 免费阅读下载
*本文收集于因特网所有权为原作者所有。若侵犯了您的权益请留言。我将尽快处理多谢。 *
VirMach,成立于2014年的美国IDC商家,知名的低价便宜VPS销售商,支持支付宝、微信、PayPal等方式付款购买,主打美国、欧洲暑假中心产品,拥有包括洛杉矶、西雅图、圣何塞、凤凰城在内的11个数据中心可以选择,可以自由搭配1Gbps、2Gbps、10Gbps带宽端口,有Voxility DDoS高防IP可以选择(500Gbps以上的防御能力),并且支持在控制面板付费切换机房和更换IP(带...
npidc全称No Problem Network Co.,Limited(冇問題(香港)科技有限公司,今年4月注册的)正在搞云服务器和独立服务器促销,数据中心有香港、美国、韩国,走CN2+BGP线路无视高峰堵塞,而且不限制流量,支持自定义内存、CPU、硬盘、带宽等,采用金盾+天机+傲盾防御系统拦截CC攻击,非常适合建站等用途。活动链接:https://www.npidc.com/act.html...
如果我们熟悉RAKsmart商家促销活动的应该是清楚的,每个月的活动看似基本上一致。但是有一些新品或者每个月还是有一些各自的特点的。比如七月份爆款I3-2120仅30美金、V4新品上市,活动期间5折、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量服务器比六月份折扣力度更低。RAKsmart 商家这个月依旧还是以独立服务器和站群服务器为主。当然也包括有部分的低至1.99美元的VPS主机。第一、I...