




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务与要求要求能够方便地编辑和发送电子邮件,并将带有附件的邮件发送至用户指定的邮箱(可以多个)。通过学习并掌握System.Net.Mail 命名空间中相关的类(包括Attachment、MailAddress、MailMessage、SmtpClient等)的使用。并考虑不使用SmtpClient,而是直接使用TCP套接字,编程实现SMTP协议的客户端相关功能,最终实现简单邮件的发送。(1)、深入理解电子邮件系统的构成和SMTP协议的工作原理。 (2)、学习并掌握System.Net.Mail 命名空间中相关的类的使用。 (3)、完成客户发送客户端软件的开发和测试。2、 软件总体设计电子邮件(简称E-mai1)又称电子信箱、电子邮政是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。2.1 软件分析本设计发送程序采取了既可与发送邮件服务器连接又可以直接与接收邮件服务器连接的方式来实现电子邮件的发送。用户在“收件人邮箱”所对应的对话框中输入收件人的Email地址,并在“发件人邮箱”所对的对话框中输入发信人的Email地址,编辑信件的正文(本例还可以发送附件,只要填写真确的路径,就可以发送附件),然后单击“发送”按钮,便可完成电子邮件的发送。电子邮件发送成功,程序将弹出一个“发送成功”的消息对话框;若电子邮件发送失败,程序将给出失败的相关信息。2.1.1 SMTP协议简介SMTP协议是TCP/IP协议族中的一员,主要对如何将电子邮件从发送方地址传送到接收方地址,也即是对传输的规则做了规定。SMTP协议的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP协议通信模型并不复杂,主要工作集中在发送SMTP和接收SMTP上:首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。可大致用下面的图1来表示:图1 SMTP通信模型2.2 软件设计本设计是利用Windows应用程序,来实现发送邮件的功能,利用正则表达式验证用户输入的信息,当输入的信息符合要求时,才允许将邮件发送到邮件服务器。创建一个名为SendMailExample的Windows应用程序,将Form1.cs改名为FormSendMail.cs,设计界面如图2来表示:图2 发送窗口2.3 程序设计发送窗口的整体程序设计如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Text.RegularExpressions;using System.Net;using System.Net.Mail;namespace SendMail public partial class FormSendMail : Form public FormSendMail() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) /发件人改变时触发 private void textBoxUserName_TextChanged(object sender, EventArgs e) /要求满足电子邮件的格式 BoxUserName.Visible = !Regex.IsMatch(textBoxUserName.Text, w+(-+.w+)*w+(-.w+)*.w+(-.w+)*$); / 密码改变时触发 private void textBoxPassWord_TextChanged(object sender, EventArgs e) /要求满足520个英文字母或者数字的组合 BoxPassWord.Visible = !Regex.IsMatch(textBoxPassWord.Text, w5,20$); /收件人地址改变时触发 private void textBoxReceive_TextChanged(object sender, EventArgs e) /要求满足电子邮件的格式 BoxReceive.Visible = !Regex.IsMatch(textBoxReceive.Text, w+(-+.w+)*w+(-.w+)*.w+(-.w+)*); /主题改变时触发 private void textBoxSubject_TextChanged(object sender, EventArgs e) /不能为空 BoxSubject.Visible = !Regex.IsMatch(textBoxSubject.Text, .1,$); /发送内容改变时触发 private void textBoxBody_TextChanged(object sender, EventArgs e) /不能为空 BoxBody.Visible = !Regex.IsMatch(textBoxUserName.Text, .1,$); private void buttonSend_Click(object sender, EventArgs e) string invalidString = ; if (BoxUserName.Visible = true) invalidString += 用户名、; if (BoxPassWord.Visible = true) invalidString += 口令、; if (BoxReceive.Visible = true) invalidString += 收件人、; if (BoxSubject.Visible = true) invalidString += 主题、; if (BoxBody.Visible = true) invalidString += 邮件内容、; if (invalidString.Length 0) MessageBox.Show(invalidString.TrimEnd(、) + 不能为空或者有不符合规定的内容); else /发件人和收件人的地址 String toes = textBoxReceive.Text.Trim().Split(;); MailAddress from = new MailAddress(textBoxUserName.Text); MailAddress to = new MailAddress(toes0); MailMessage msg = new MailMessage(from, to); MailAddressCollection mac = msg.To; for (Int32 i = 1; i 0) for (int i = 0; i 0) listBox1.Items.AddRange(myOpenFileDialog.FileNames); 2.4程序测试2.4.1 发送邮件中的窗口,如下图3表示:图3 发送邮件中的窗口2.4.2 发送邮件成功的窗口,如下图4表示:图4 发送邮件成功的窗口3、设计总结经过一周的课程设计,感触颇深的是知其然还要知其所以然,不能马马虎虎得过且过,对不会写的代码,要搞明白是什意思,是否自己可以再写一段。此次我们做的设计是最简单的一种,它还存在很多不足,比如系统比较简单,系统的图形操作很缺乏,需要美化,需要人性化,实现的功能也不完善。在输入代码,不得马虎,要不然在运行时就会错误百出,这次课设结合了好几门课程,看来学习不能太孤立,每门课有共同性,有联系,结合起来更容易理解。这就告诉我们学习不能太死板,另外,还要学以致用,光听是学不会的还得自己亲身经历,亲自操作实践,才能领悟。4、参考文献1 Douglas E Comer 著林瑶译.用TCP/IP进行国际互联 M北京:电子工艺出版社,1998:全书2 Jonathan B Postel著.SMPLEMAL TR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管网工程农民工实名制与用工管理方案
- 环保设备制造团队环保考核方案
- 环保设备新材料应用技术方案
- 排水系统应对极端天气技术方案
- 城市河道疏浚防内涝方案
- 生物传染实验题目及答案
- 安全培训笔记内容摘要课件
- 安全培训科科长职责课件
- 东南亚跨境电商市场消费者售后服务报告:2025年市场洞察
- 导游词写法课件
- 腹腔镜CO2气腹并发症的预防与处理
- 2026年高考语文备考之必背补充教材篇目(原文+注释+翻译)
- 杭州银行薪资管理办法
- 肺结核的课件
- 渝23TG02 钢管桁架预应力混凝土叠合板图集 DJBT50-165
- 海洋弧菌护理查房
- 2025-2030中国玉米脱粒机行业现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 生产精益培训
- 《第十四届全国交通运输行业“大象科技杯”城市轨道交通行车调度员(职工组)职业技能大赛技术方案》
- 教师节主题班会课件尊师重教不忘师恩
- 中医针灸活动方案
评论
0/150
提交评论