欢迎来到天天文库
浏览记录
ID:26062949
大小:1.17 MB
页数:22页
时间:2018-11-24
《计算机网络实验―基于smtp发送邮件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机网络实验―基于SMTP发送邮件班级:电气16班姓名:马丽军学号:01041172完成时间:2004年5月26日指导教师:薛涛日期:2004年5月27日目录一、实验任务…………………………………………3二、实验环境…………………………………………3三、设计思路…………………………………………4四、实验过程…………………………………………5五、实验故障与排除…………………………………15六、个人总结…………………………………………16附录……………………………………………………16一、实验任务现在电子邮件的应
2、用越来越广泛,它逐渐被人们所接受使用,因为它具有方便快捷,经济的优点。而发送邮件的形式有借助与IE或者OutLook,而本人经常IE,不过这还要先打开IE浏览器,再进入邮箱进行操作,很麻烦,所以在做网络实验的过程中本人决定开发一个电子邮件发送程序,它可以借助SMTP服务器来发送邮件。因此,我制作了一个便于发送邮件的基于smtp的程序如图:Smtp服务器显示连接发送状态添加附件端口25二、实验环境1. Pentium166/128M内存2. Windows95/98/2000/Me/Xp操作系统3
3、.基于SMTP协议4.显示环境为800×600分辨率,16位增强色5.delphi6.0三、设计思路初始化判断各个窗口输入是否正确否是连接服务器失败成功发送邮件失败成功结束说明:因为delphi的很多程序是已经在组件中封装好了的,只需要调用就可以了。先是设定NMSMTP组件中要进行连接的SMTP服务器名,服务器的端口号,以及登陆用户等,再利用NMSMTP组件的Conect方法尝试连接。在进行连接过程中,可能会出现连接失败等一些错误,这里对此进行了跟踪,用来提示用户,连接是否有效。接着开始利用NMSMTP组件指定
4、接收方的地址,用户名,邮件主题,发送方,附件等,开始对指定的SMTP服务器进行邮件发送,由于在发送过程中可能会出现一些异常,这里利用NMSMTh组件对在发送过程中出现的异常进行捕捉,同时反馈给用户。为了能使邮件发送成功,在发送过程中要把邮件所包含的邮件头信息去掉,该属性的定义过程为:propertyFinalHeader:TExStringList;这里调用它的一个Clear方法用于清空邮件的头信息。利用NMSMTh组件的OnAuthenticationFailed事件来处理需要验证的SMTP服务器,该事件在D
5、elphi6.0中定义如下:propertyonAuthentlcatlonFalled:THandlerEvent;这里的ThmdlerE此止对象定义如下:THandlerEvent=procedure(varHandled:Boolean)ofobject;这里的Handled参数用于标识是否进行相应的处理。四、实验过程1建立一个新工程(1)启动Delphi6.0,在IDE环境下单击工具栏上的【New】按钮,打开【NewItems】对话框,然后单击【New】选项卡,这时出现了Delphi6.0默认的新建选项
6、列表,选择Applicpon项,如图所示:(2)单击【OK】按钮,则创建了一个新的应用程序,如图所示。(3)现在开始构建这个发送E-mal程序的主要窗体结构,为了能使用户可以随意指定符合自己需要的SMTP服务器,这里提供了一个下拉文本框,用户可以根据自己的需要选定。用户指定好发送方和邮件主题等信息后,就可以利用该程序发送邮件了,这里所需要的组件都是由Delphi6.0提供的,添加过程为:向应用程序主窗体中依次添加一个Memo组件,六个Edit组件,一个Animat组件,一个OpenDialog组件,一个NMSM
7、TP组件,一个GroupBox组件,两个Pannel组件,一个StatusBar组件,八个Label组件和两个SpeedButton组件,具体位置如图所示2设置窗口属性(1)TForm(2)TSpeedButton(3)Tlabel其他的label4---label8同理设置。(3)TButton(4)TEdit其他同理。(5)TgroupBox(6)Tmemo(7)TAnimate(8)TcomboBox(9)TStstusBar(10)TOpnDialog(11)TNMSMTP3添加应用程序源代码:运行结果
8、五、实验故障与排除正确的错误的错误提示较可以知道,我把所有的属于GroupBox的组件群放在了他的外面成为同等的组件,这样在运行时在将GroupBox初始化时就不能初始华那些组件群。产生错误提示如下:我后来在对一个组件跟踪调试的时候才发现未能初始化,依次类推都没有初始化,后改变他们的位置就编译通过了。六、个人总结历时4周,我终于完成了这个实验,因为自己的计算机水平相对较低,所以有一半的
此文档下载收益归作者所有