程序设计报告项目名称:网络邮件群发程序设计课程名称:计算机编程班级:计G122姓名:岳敏122105申艳萍122106信息工程学院计算机系2013-3-29网络邮件群发程序设计报告一、设计目的利用SmtpMail或JMail类,编写一个网络邮件群发程序,要求:(1)在邮件接收者的信箱中,用户不能看到同时群发的其他用户E-mail地址,便于保密;(2)群发邮件主题中,可以手动输入收件人,也可以从文件导入、从地址薄导入。二、设计内容首先,我们通过学习老师给的课件学习了Email系统的工作原理,以及涉及到Email服务程序的一些协议。并在老师给我们的源代码的基础上,对程序进行修改,第一步,我们调试源程序,使其能够成功地给对方(单个人)发邮件;第二步,我们在Email服务程序设计的发送端窗口增加了一个NumericUpDown控件,这个模块所实现的功能是可控制发给某一个人同一封邮件的次数。那么,接下来我们需要解决的就是如何实现给多个收件人发送同一封邮件(即群发邮件功能)。通过在发送方添加代码for(inti=0;itmpStr.Length;i++){SendAddress=tmpStr[i];}首先获得输入的多个收件人地址,然后把收到的所有收件人地址存储在SendAddress中,并对其添加for循环,每完成给一个人的发送便直接跳到输入的下一个收件人地址,直到把SendAddress里存储的所有收件人地址发送完,那么程序就会提示“邮件发送成功”,否则就提示“操作错误”。添加的下面这段代码是用来获取收件人地址,并且对tBRev.Text进行判断,如果地址不为空,那么把获取的地址存入strRev中,stringSendAddress=null;if(tBRev.Text!=){tmpStr=strRev.Split(tmpChar);}并且对收信人的Email地址依次进行如下操作:data=RCPTTO:+SendAddress+;WriteStream(data);listBoxMsg.Items.Add(rdStrm.ReadLine());pb1.Value++;再对发送邮件接收者信息依次进行如下操作:data=TO:+SendAddress;//yyyyystrRevWriteStream(data);那么,综上所述群发邮件的功能就成功实现,可以给校内邮箱,qq邮箱等进行发送邮件。由于以上的群发地址必须是手动输入,那么接下来我们将通过对代码操作来实现群发地址可以从文件导入、从地址簿导入的功能。privatevoidbutton2_Click(objectsender,EventArgse){OpenFileDialogopenFileDialog=newOpenFileDialog();openFileDialog.InitialDirectory=c:;openFileDialog.Filter=文本文件(*.txt)|*.txt;openFileDialog.RestoreDirectory=true;openFileDialog.FilterIndex=1;StringfName;if(openFileDialog.ShowDialog()==DialogResult.OK){fName=openFileDialog.FileName;//设置打开文件的格式tBRev.Text=string.Empty;//清空字符串前后多余空字符StreamReadersr=newStreamReader(openFileDialog.FileName);stringcc=sr.ReadToEnd();//读取文件中的所有内容string[]s=cc.Split('\n');//把文件中的换行作为一个分隔符,放入数组foreach(stringlineins){//遍历数组tBRev.Text+=line+;;//将从文件中读出的每行后加‘;’号}sr.Close();}}三、设计结果1.发送方调试窗口2.发送方发送成功窗口3.接收方接受成功窗口四、心得体会通过这几次课的时间,我们基本完成了邮件的群发功能,这个程序实现了同时对多个人发送邮件,并且实现了邮件密送,即收件人不会看到其他用户的E-mail地址,群发邮件主题中,可以手动输入收件人,也可以从文件导入、从地址薄导入。设计过程中也用到了C#语言的基本语法,巩固了添加基本控件以及处理事件的方法,更加了解了URL等网络编程知识。实验体会通过此次网络邮件群发程序设计,我们初步了解了E-Mail协议的工作原理,也学会了用SMTP,ESMTP,POP3协议格式进行编程的方法,也进一步加强了对MicrosoftVisualStudio软件及其组建的应用,我们注重团队合作,充分发挥每个人的长处,很融洽的完成了任务。在设计过程中,我们也遇到了很多问题,比如在如何从文件导入收件人,由于我们对C#语言不是很精通,于是我们不断的的思考、讨论、查找资料,问题终于迎刃而解。总之,通过设计“网络邮件群发”这个小程序让我们收获颇大。