




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Presentation by: Emil,用Java语言实现简单邮件系统,实训作品原理及功能说明,Presentation by: Emil,项目目标,掌握邮件系统开发技术,包括邮件协议, JavaMail及邮件开发环境配置,邮件收发流程及JavaMail 核心类的使用,利用 JavaMail 开发一个具体的邮件管理系统。,Presentation by: Emil,邮件系统介绍,在网上怎样收发邮件? 答:在网络上收发邮件各需要一个协议来完成,这一点不用于现实世界的邮件处理过程。 常用的邮件协议是哪些? 答:它们是pop3协议,负责收取邮件;smtp协议,负责发送邮件。二者各司其职,但是一个完整的邮件系统必须拥有这两种协议才能完成邮件收发工作。,Presentation by: Emil,两种查收邮件的方式,一、在线查收 比如hotmail。此时只需要登陆服务器收发信件就可以了,用户不必理会pop3和smtp服务器的设置,因为它们是自动在幕后工作的,点击“发送”,smtp就在工作了。,Presentation by: Emil,两种查收邮件的方式,二、离线查收 比如Outlook或者Foxmail。此类软件的好处是可以把信件收到本地的硬盘上。但是在创建新账号的过程中就必须按提示正确填写你的信箱地址、密码、pop3服务器地址、smtp服务器地址,这样才能实现不登陆信箱也能收发信件。,Presentation by: Emil,市场上的几种邮件系统性能比较,Presentation by: Emil,大型门户网站的邮件系统,目前大型门户网站的邮件系统通常是由内部人员自行开发的,需要十几个高级技术人员专门维护,并依赖于昂贵的硬件支持。 Etang的邮件系统采用了价格为100万美元的EMC存储设备 263的邮件系统成本在1500万人民币,有30人负责维护 新浪的邮件系统有60台的服务器支撑,还有十几位工程师在专门维护该系统 结论:这样的成本令众多企业在开展邮件服务时望而生畏。,Presentation by: Emil,Exchange Server,该系统只能运行在Windows NT上,而WinNT本身的不可靠、不稳定决定了Exchange Server的不稳定、不可靠。 Exchange Server具有严重的内存泄漏问题,随着系统运行时间的增加会越来越慢,平均至少要一周重启一次。 Windows NT系统面临着巨大的病毒感染隐患,一旦Exchange Server感染病毒,会造成Exchange Server本身的瘫痪,感染速度惊人。杀毒软件只会“亡羊补牢”。 Exchange Server对邮件账户的支持是非常有限的,一般超过200个用户是系统就会效率低下,提升性能只能依靠昂贵的硬件。 Exchange Server自身安全防范较弱,容易被外界利用来转发邮件,甚至冒充内部人员发送垃圾邮件。 Exchange Server维护困难,拥有成本高,每个用户需交纳10美元许可费。,Presentation by: Emil,Lotus Notes,Lotus Notes基本上还是一套OA和工作流系统,其邮件功能十分有限。国内用户反映的问题主要有: 邮件系统经常不能正常收发,需频繁的重启动服务器或清理邮件系统。 经常被外界利用来转发邮件 不能和部分邮件系统很好兼容,系统收到的263和163信箱的邮件显示为乱码,收不到hotmail的邮件。 OA功能丰富,但是邮件系统不够可靠,效率低,超过300人时,收信速度明显变慢 拥有成本高,每个用户的成本是21美元,比Exchange Server还贵。,Presentation by: Emil,我的JavaMail系统,自己开发系统的最大好处是: 按需定制,怎么简单怎么来! 资源开销小,维护成本低,功能灵活,有问题不用咨询工程师,毁掉重做就好。 拥有成本低到只有时间成本。 界面简单,清晰明了。,Presentation by: Emil,使用邮件协议的优点和不足,邮局协议的最大好处在于支持移动计算。由于用户的信件是存放在POP服务器中而不是直接自动存放到用户的计算机中的,这样用户就不必建立与“邮局”的永久性连接,以等待随时可能寄来的电子邮件,这使得那些不易于直接连入局域网络的台式PC或笔记本机可以通过拨号上网(建立临时的TCPIP连接)的方式方便地获得邮件服务。这也是目前分散的互联网用户获得邮件服务的主要形式。 离线收发邮件的不足之处在于容易受到垃圾邮件的骚扰。而www邮局则较好地解决了此问题,因为服务器已经自动拦截了相当数量的垃圾邮件。,Presentation by: Emil,怎样用J2SE实现邮件系统,Java提供了相应的程序接口 JavaMail是相应的邮件功能实现接口,通过此接口,应用程序可以在黑盒状态下实现与邮件协议的通信,完成邮件收发。实现机制类似于数据库桥接程序原理。,Presentation by: Emil,本项目中邮件收发实现过程,使用JavaMail接收邮件的基本系统流程 1、使用session建立会话 2、使用store建立连接 3、使用folder与制定文件夹建立连接 4、使用message等类处理邮件,Presentation by: Emil,本项目中邮件收发实现过程,使用JavaMail发送邮件的基本系统流程 1、使用session建立会话 2、使用transport建立通信对象 3、使用message构建邮件 4、使用transport发送邮件,Presentation by: Emil,本系统组建思路,因为实际上我们的目标系统就是邮件服务器的客户端,所以他的基本功能得以确定: 1、实现pop3邮件服务器的收取与显示 2、使用smtp邮件服务器发送邮件 3、实现文本邮件与多附件的发送与接受 4、实现邮件的删除功能 仿照 MS Outlook Express功能实现,Presentation by: Emil,系统界面管理,系统主界面写邮件、收邮件、删除邮件、服务器参数预置、邮件列表、邮件显示窗口。 新建和发送邮件界面 服务器参数设定界面pop3和smtp服务器参数设定。 收取附件界面附件列表、保存功能。,Presentation by: Emil,重点功能的实现技术,JavaMail API如何支持邮件系统开发?,Presentation by: Emil,发送邮件的类和方法,Presentation by: Emil,Properties,JavaMail需要Properties来创建一个Session对象,它将寻找字符串“mail.smtp.host”,属性值就是发送邮件的主机。比如: Properties props = new Properties(); Props.put(“mail.smtp.host”,””);,Presentation by: Emil,Session,Session类代表JavaMail中的一个邮件Session 。每一个基于Javamail的应用程序至少有一个Session ,但是可以有任意多的Session 。 Session对象需要知道用来处理邮件的smtp服务器。例程: Session sendMialSession; sendMailSession = Session.getInstance(props,null); Session类定义了基本的邮件会话。就像Http会话那样,我们进行收发邮件的工作都是基于这个会话的。Session对象利用了java.util.Properties对象获得了邮件服务器、用户名、密码信息和整个应用程序都要使用到的共享信息。,Presentation by: Emil,Transport,JavaMail使用了两个不同的类来完成这两个功能:Transport 和 Store。Transport是用来发送信息的,而Store用来收信。使用Transport 的方法: Tranport transport; transport =sendMailSession.getTransport(“smtp”); 用JavaMail Session的对象的getTransport方法来初始化Transport。传过去的字符串申明了对象所要使用的协议“smtp”,这极大的节省了我们的时间。 JavaMail已经内置了很多协议的实现方法。,Presentation by: Emil,Authenticator,Authenticator 像类那样,JavaMail API通过使用授权者类(Authenticator)以用户名、密码的方式访问那些受到保护的资源,在这里“资源”就是指邮件服务器。在javax.mail包中可以找到这个JavaMail的授权者类(Authenticator)。 在使用Authenticator这个抽象类时,我们必须继承该抽象类,并且该继承类必须具有返回PasswordAuthentication对象(用于存储认证时要用到的用户名、密码)getPasswordAuthentication()方法。并且要在Session中进行注册,使Session能够了解在认证时该使用哪个类。,Presentation by: Emil,Message,Message对象存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail Session。 使用方法: Message newMessage = new MimeMesage(sendMailSession);,Presentation by: Emil,接收邮件的类和方法,Presentation by: Emil,Store,建立Session对象后,就需要使用Store类建立与POP或者IMAP服务器的通信连接,例程: Store store = session.getStore(“pop3”); Store.connect(host,username,pwd); Store是抽象类,它模拟了消息存储器及其内部目录(Folder)访问协议,以存储和读取消息,由其子类提供具体实现。客户程序可以通过获取一个Store对象来访问消息存储器,以绝大多数的存储器要求用户在访问前提供认证信息,connect方法执行了该认证过程。与Transport类似,也可以指定Store使用协议。邮件是读取邮件所以用pop3协议来读取。 如: Store store=new Store(“pop3”); 然后认证:store.connect(host,username,pwd),Presentation by: Emil,Folder,使用Folder类与指定的文件夹相连,例程: Folder folder = store.getFolder(“INBOX”); foler.open(Folder.READ_ONLY); Message message=fol
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省菏泽市重点高中2024-2025学年高三化学试题5月最后一卷试题含解析
- 江苏省泰兴市达标名校2024-2025学年初三年级第十一次网考生物试题含解析
- 江苏省南京市鼓楼区重点达标名校2024-2025学年中考预测金卷数学试题理(湖南卷)含解析
- 西昌学院《秘书礼仪》2023-2024学年第二学期期末试卷
- 辽宁省丹东第十中学2025届初三第二学期期初模拟训练一英语试题含答案
- 宿舍文化节活动流程
- 技能培训经典案例分享
- 上海市金山区2025届高三二模语文试题(含答案)
- 下肢血管溃疡的治疗和护理
- 2025年建筑工程流动资金借款合同示例
- 发热病人中医护理
- 捕鼠公司合同协议
- 2025-2030中国煤化工行业发展分析及投资风险与战略研究报告
- 四川自贡九鼎大楼“7·17”重大火灾事故调查报告学习警示教育
- 小学生国家安全教育日学习课件
- 2025标准金融服务合同范本
- 农业环境与可持续发展试题及答案
- 洗涤机械生产过程质量控制考核试卷
- 2025年中国安防视频监控镜头市场竞争态势及投资方向研究报告
- 画龙点睛成语故事
- 电信行业用户欠费催收策略与措施
评论
0/150
提交评论