软件技术专业毕业实训报告(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实训报告实训题目:邮件服务器的收发系统
系别:信息工程系
专业:
学号:
姓名:
指导教师:
提交日期:2010 年 6 月 2 日
一、实训题目
用SMTP和POP3协议实现邮件服务器的收发系统
二、实训目的
实训是学生接触社会实际,提高综合职业素质,增强分析问题和解决问题能力的重要教学环节,也是培养人才的重要途径,通过实训巩固和加深课堂所学知识,学习掌握企业级开发的流程与具体操作方法;通过实训,培养“团队”精神和“开拓创新”能力,大力提倡和鼓励在开发过程中使用新方法、新技术,开拓思路,设计新算法、新创意,培养创造性的程序设计能力和锐意创新进取的精神;配合毕业论文写作,开展调查研究,培养面对现实问题的正确态度和独立地分析解决问题的能力;树立新的发展起点和目标,通过实训,认识社会的需要,发现自身差距,培养良好的职业精神,适应毕业后实际工作的要求,为我们以后进一步走向社会打下了坚实的基础。
三、实训时间
四、实训地点
五、实训部门或岗位
实习生
六、实训内容和过程
6.1实训内容
6.1.1协议的了解
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为
LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。
6.1.2系统的要求
服务器端的功能:支持邮件接收功能 (POP3),支持邮件发送功能 (SMTP/ESMTP),支持邮件转发能 (Java Mail),路径可配置,用户可配置。
用户管理程序的功能:支持用户的CRUD操作,用户包括并不限于用户名,密码,出生年月,地址,创建时间,所属部门或单位。可以禁止用户在某一时间段内不能使用本系统。
邮件客户端功能:邮件的接收,发送,设置连接服务器的相关参数等。
6.1.3系统体系结构
邮件系统包括邮件了发送,收取,转发。
以Outlook为客户端,配置好用户信息,将邮件发送到对应的服务器上去,对于服务端,SMTP服务器,POP3服务器,其它必须遵循对应的协议,支持Outlook和Telent,多个用户可以同时登陆服务器进行邮件的收发,不同的用户之间相互不干扰,对于用户信息要保存在LDAP中,邮件信息要保存在Oracle数据库中,用户可以修改自己的用户信息,可以正常的收发自己的电子邮件,服务端可以对用户的帐户进行控制,如禁用启用等,此外,在系统中产生的其它信息(如服务器信息)要保存在配置文件中。
6.2实训过程
1.POP3协议。用户登陆POP3服务器后必须输入user 用户名,pass 密码登陆,登陆成功后,用户可
以输入stat,list,retr,dele指令,其中,stat没有参数,list可以有参数,也可没有参数,retr,dele,list所跟参数必须为数字,在任何时候,用户输入quit可以退出系统,当用户名或密码错误以及连接超时,用户输入指令错误次数达到系统限制时,服务器应自动断用户的连接。
2.SMTP协议。当用户连接上SMTP服务器的时候,如果不是转发的电子邮件,则需要发ehlo指令,
指令的格式为:ehlo <内容>,用户在输入auth login指令后只能输入mail from:指令,指令后必须接上一个有效的电子邮件地址,接下来只能输入rcpt to指令,其后也必须接上一个有效的电子邮件地址,如果这两个地址的服务器不一样则需要转发邮件,否则由本服务器进行处理,接下来只能输入data指令,然后输入内容,内容以“.”结束,最后输入quit指令退出系统,在整个邮件的发送过程中,可以随时输入ehlo指令和quit指令,若错误的次数达到系统的限制,用户名或密码错误,服务器应断开用户的连接。在输入用户名和密码时不能输入指令。如果是转发,则不需要输入auth login指令,其后可以直接mail form,rcpt to,data指令,在输入了错误的指令后会有相应的错误代码提示。
3.JAVAMail。在SMTP服务器中,如果发出了HELO指令,则需要转发邮件,这时要用到JAVAMail,在
配置文件中,把邮件域名与IP地址建立起对应的联系,在转发时只要截取邮件域名就可以拿到要转发的主机地址,设置好邮件信息即将邮件发送出去。
4.Oracle数据库。在Windows平台上安装oracle数据库,oracle10G默认的数据库名称是orcl,连
接端口号是1521,安装完毕后可以通过控制台来进行操作,但为了操作方便,安装oracle视图工具PLSQL,在安装PLSQL时要配置环境变量NL_SLANG和TNS_ADMIN,配置完环境变量后用此视图工具来连接Oracle数据库,来进行增删查改操作。
5.LDAP协议。要使用LDAP,需要安装JXplorer,配置其LDAP的配置文件为自己的信息,修改suffix
"dc=my-domain,dc=com",rootdn "cn=Manager,dc=my-domain,dc=com",rootpw
secret。使用slapd –d 1来启动服务器,使用JXplorer来连接服务器对其进行增删查改操作。
七、实训体会和收获:
大三了,大学生活转眼间就已经到头了了。为了增加实践经验,我到了武汉市东兆有限责任公司进行实训,短短的实训期,使我经历了很多,成长了很多.。在实训的这段日子里,我在现场的工作不仅使我学到了在大学了学不到的东西,而且还让我认识到的了关于处人与处事的社会经验机及其重要性。
以前在校时,从来没有接触到像LDAP协议,servlet之类的东西,或者说只是听闻过,只是不知道它们是什么东西,干什么用的。初到公司时,我们开始学习JAVA基础,那时我在想,我们以前在学校里都学过JAVA的基础知识,没有必要再学一遍,但事实让明,我这个想法是一个很大的错误,在这期间我们学习写计算器程序,从这个计算器程序中我们学习了类的封装,如把所有的操作抽象出来封装成一个类,所有的操作都继承此类,程序会根据我们输入的运算数据及运算符来自动的调用相应的方法,大大提高了程序的可扩展性,对代码的维护也更加的方便,。这些使我认识到我自己离一个合格的程序员的距离。我们写一个程序,不仅仅是要完成它的功能这么简单,我们还有许多事情要考虑,比如写出来的程序代码的冗余度怎么样,代码的执行效率如何,它是否是线程安全的,代码的冗错率是否比较高。或许有人认为这些没有太大的影响,但在实训的过程中,我深刻的体会到了这些问题的重要性,在我写和计算器程序中,刚开始只设计了加减乘除运算,并没有考虑以后功能的添加,在后期时需求发生了变化,要求加入更多的运算任务,这时代码的冗余度太大,以至于最后重写程序。对问题分析得不透彻,比如要比较两数是否是同号,我们以前的做法是将这两个数相乘判断其符号是否大于零,但这是一个很严重的错误,在真正的企业级开发中,是分别对这两数进行判断。
知识是一点一滴不断积累起来的,学习的过程也是由简单不断的深入,我们学习了以前不曾学到过的知识或者说自己薄弱的知识。在JAVA中定义可变参数,以及对可变参数的引用,即在方法的参数列表中以三个点来表示;学习了IO操作,其实我们在以后的程序中有很大的一部会都是对IO的操作,如磁盘文件的读写,网络数据的传输,Web程序的应用,只是不同的应用程序IO的管道不同而已,倘若我们学会的仅仅是如何去操作,而不是其方法,那么当我们以后要操作的对象发生了变化,我们就不知如何去做的,这样的学习方法显然是失败至极的;学习了多线程程序的原理及编写方法,一个多线程程序的实现有两种方法,一是实现Runnable接口,二是继承Thread类,并通过start()方法来启动,在