APP下载

毕业生就业跟踪系统中邮件群发功能的实现

2015-04-16邵雨舟

电脑与电信 2015年7期
关键词:运算符群发调查表

邵雨舟

(北京经济管理职业学院,北京 100105)

1 引言

在我们开发应用系统中经常遇到这种情况,一份相同内容的文件要同时发送给多个人,例如每月向单位员工发送工资明细单,可以通过邮件群发的功能来发送这些信息,这样能够节省大量的人力物力,而且方便迅速。

我们在开发“学院毕业生就业跟踪系统”过程中,开发了调查表发送的邮件群发模块,可以通过组合查询功能选择发送调查表的对象,然后编写调查表内容(也可以直接选择事先设计好的调查表文档),通过获取用户表中的邮箱地址字段的值,直接向多个用户发送调查数据。

2 发送电子邮件的原理

通过SMTP协议所指定的服务器,就可以把邮件寄到收信人的服务器上了。

跟大多数应用层协议一样,SMTP也存在两个端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。如果用户使用用户代理软件(Windows上常见的用户代理是Foxmail和Outlook Express),用户只需要进行简单的发送操作就可完成邮件的发送,用户代理软件提供一个友好的用户界面,它提取用户在其界面填写的各项信息,生成一封符合SMTP等邮件标准的邮件,然后采用SMTP协议将邮件发送到发送端邮件服务器;如果用户使用Web邮件方式,则全部的实现过程都由邮件服务器完成。

3 邮件群发系统的设计与实现

学院就业管理部门和学院系部为了解毕业生的职业发展情况,制定了每半年向选定的毕业生自动发送一封电子邮件,了解该毕业生的职业发展信息;另外各系部出于自己的专业发展的需求,也会定期向选择的毕业生和用人单位发送专业调查表,然后对反馈的信息进行分析整理,作为专业改革和专业建设的重要依据。

系统中的邮件群发的功能模块,基本工作过程是这样的:

(1)首先通过组合查询功能,选择调查对象;

(2)从获取的对象列表中选择发送电子邮件的学生或企业名单;

(3)编写邮件内容;

(4)发送。

整个系统是采用基于C#的ASP.NET技术开发的,数据库使用的是SQLServer数据库。

下面分别介绍设计思路和实现过程。

3.1 发送对象范围的获取

在数据库中使用表来保存全部毕业生的信息,其中包含有毕业生Email字段。

阅读能力是学习能力中基础而重要的构成部分,学生具备了优越的阅读能力,才能进行复杂内容的学习,从而提升个人综合能力。在当下的小学教育中,已经有越来越多的语文老师重视培养学生的阅读能力,这影响着阅读教学手段的不断更新,推动着小学阅读教学实践的发展进步。

首先通过查询条件的界面选择发送对象,操作界面如图1所示:

图1 毕业生信息组合查询界面

其中包含的控件依次为:

包含查询字段的下拉列表框(field_name)、包含关系运算符的下拉列表框(operate)、输入查询值的文本框(query_value)、选择逻辑运算符的下拉列表框(logic_operate)、3个命令按钮控件。

将需要查询的字段绑定到查询字段的下拉列表框中,在没有选中要查询的字段之前,关系运算符的下拉列表框、输入查询值的文本框、逻辑运算符的下拉列表框、执行查询命令按钮的Enabled属性都为false。

每次查询开始之前,先定义一个变量来保存最终得到的Select查询命令:

第一步:要选择查询的字段名,在选中要查询的字段之后,关系运算符的下拉列表框可以使用了:

select_command=select_command+field_name.SelectedValue+"";

第二步:选择关系运算符。选中某个运算符之后,输入查询值的文本框就可以使用了:

logic_operate.Focus();

第四步:如果选择逻辑运算符,则执行下面语句,然后重复执行第一步;否则直接按“执行查询”命令按钮,执行第五步,开始查询。

第五步:单击“执行查询”命令按钮开始查询,并将查询结果绑定到GridView控件(ID∶result)上。最终获得的查询结果如下图2所示:

图2 组合查询的结果

3.2 发送对象范围的获取

在获得查询名单列表后,通过复选框控件(ID∶select)获取要发送调查表的对象,然后单击“编写邮件”命令按钮。将选中学生姓名、email、学号、登录密码等信息添加到一个临时数据表中。

Session["select_table"]=dt;//通过Session对象在其它地方使用这个临时数据表

else

Response.Write("<script>alert(‘您没有选择要发送邮件的学生...’)</script>");

3.3 填写相关数据,并完成邮件的群发

实现发送功能的是利用了一个Windows自带的一个发邮件的组件∶cdosys,在 C∶WINDOWSsystem32下有一个cdosys.dll的动态链接库文件,利用这个组件,我们可以连接SMTP服务器,通过指定的用户名/密码验证发送邮件。

在vs的资源管理器添加引用,添加Microsoft CDO For Exchange 2000 Library的COM组件。

通过使用CDO.Message对象,创建我们要发送的邮件对象,CDO.Message msg=new Message(),其中:

msg.Form∶发件人邮件地址

msg.To∶收件人邮件地址

msg.Subject∶邮件标题

msg.HtmlBody∶邮件主体,比如"<html><body>"+"邮件信息"+"</body></html>";

msg.AddAttachment()∶添加附件

msg.Send()∶发送邮件

单击“编写邮件”命令按钮,进入如图3所示的界面:

图3 电子邮件的发送界面

从列表选择使用的SMTP服务器(ID∶email_server),并填写发送人的ID和密码以及邮件内容。

具体实现发送邮件功能代码如下所示:

//*获取文件夹的物理目录

filename=System.IO.Path.GetFileName(send_file.

DataTable dt=(DataTable)Session["select_table"];//获取前面得到的学生名单数据表

Msg.HTMLBody="<html><body>"+send_email_xm+":请你用以下账号登陆学院就业网站并后填写调查表,谢谢你。<br/>用户名∶"+dt.Rows[i]["student_id"].ToString()+"密码∶"+dt.Rows[i]["student_pwd"].ToString()+"<br/>"+send_txt.Text+"</body></html>";

//以下语句,设置发送参数,包括邮件服务器,用户名,密码

[1]王淑梅.基于C#的邮件群发的原理和实现[J].计算机与网络,2008,19.

猜你喜欢

运算符群发调查表
老祖传授基本运算符
用手机插头的思路学习布尔运算符
借助微信自身功能实现消息群发
丁酉中秋登楼时家人远离 闻多地无月乃拍照群发(外三首)
读者调查表
读者调查表
一例群发性山羊痘的诊断与防治
C语言中自增(自减)运算符的应用与分析
读者调查表
医护一体化在群发伤救治中的实践与体会