用Java语言实现简单邮件系统

上传人:宝路 文档编号:47830017 上传时间:2018-07-05 格式:PPT 页数:28 大小:1,007.65KB
返回 下载 相关 举报
用Java语言实现简单邮件系统_第1页
第1页 / 共28页
用Java语言实现简单邮件系统_第2页
第2页 / 共28页
用Java语言实现简单邮件系统_第3页
第3页 / 共28页
用Java语言实现简单邮件系统_第4页
第4页 / 共28页
用Java语言实现简单邮件系统_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《用Java语言实现简单邮件系统》由会员分享,可在线阅读,更多相关《用Java语言实现简单邮件系统(28页珍藏版)》请在金锄头文库上搜索。

1、用Java语语言实现简单邮实现简单邮 件系统统实训作品原理及功能说明项目目标掌握邮件系统开发技术,包括邮件协议, JavaMail及邮件开发环境配置,邮件收发流程及 JavaMail 核心类的使用,利用 JavaMail 开发一个 具体的邮件管理系统。邮件系统介绍 在网上怎样收发邮件? 答:在网络上收发邮件各需要一个协议来完成, 这一点不用于现实世界的邮件处理过程。 常用的邮件协议是哪些? 答:它们是pop3协议,负责收取邮件;smtp协议 ,负责发送邮件。二者各司其职,但是一个完整 的邮件系统必须拥有这两种协议才能完成邮件收 发工作。两种查收邮件的方式 一、在线查收比如hotmail。此时只

2、需要登陆服务器收发信件就 可以了,用户不必理会pop3和smtp服务器的设置 ,因为它们是自动在幕后工作的,点击“发送”, smtp就在工作了。两种查收邮件的方式 二、离线查收比如Outlook或者Foxmail。此类软件的好处是可 以把信件收到本地的硬盘上。但是在创建新账号 的过程中就必须按提示正确填写你的信箱地址、 密码、pop3服务器地址、smtp服务器地址,这样 才能实现不登陆信箱也能收发信件。市场上的几种邮件系统性能比较大型门户网站的邮件系统目前大型门户网站的邮件系统通常是由内部人员自行开发的,需 要十几个高级技术人员专门维护,并依赖于昂贵的硬件支持。 Etang的邮件系统采用了价格

3、为100万美元的EMC存储设备 263的邮件系统成本在1500万人民币,有30人负责维护 新浪的邮件系统有60台的服务器支撑,还有十几位工程师在专门 维护该系统 结论:这样的成本令众多企业在开展邮件服务时望而生畏。Exchange Server该系统只能运行在Windows NT上,而WinNT本身的不可靠、不稳 定决定了Exchange Server的不稳定、不可靠。 Exchange Server具有严重的内存泄漏问题,随着系统运行时间的 增加会越来越慢,平均至少要一周重启一次。 Windows NT系统面临着巨大的病毒感染隐患,一旦Exchange Server感染病毒,会造成Excha

4、nge Server本身的瘫痪,感染速度惊 人。杀毒软件只会“亡羊补牢”。 Exchange Server对邮件账户的支持是非常有限的,一般超过200个 用户是系统就会效率低下,提升性能只能依靠昂贵的硬件。 Exchange Server自身安全防范较弱,容易被外界利用来转发邮件 ,甚至冒充内部人员发送垃圾邮件。 Exchange Server维护困难,拥有成本高,每个用户需交纳10美元 许可费。Lotus NotesLotus Notes基本上还还是一套OA和工作流系统统,其邮邮件功能十 分有限。国内国内 用户户反映的问题问题 主要有: 邮邮件系统经统经 常不能正常收发发,需频频繁的重启动启

5、动 服务务器或清清理邮邮 件系统统。 经经常被外界利用来转发邮来转发邮 件 不能和部分邮邮件系统统很好兼容,系统统收到的263和163信箱的邮邮 件显显示为乱码为乱码 ,收不到hotmail的邮邮件。 OA功能丰富,但是邮邮件系统统不够够可靠,效率低,超过过300人时时 ,收信速度明显变显变 慢 拥拥有成本高,每个个用户户的成本是21美元,比Exchange Server 还贵还贵 。我的JavaMail系统 自己开发 系统的最大好处是:按需定制,怎么简单怎么来 ! 资源开销 小,维护 成本低,功能灵活,有问题 不 用咨询工程师,毁掉重做就好。 拥有成本低到只有时间 成本。 界面简单 ,清晰明

6、了。使用邮件协议的优点和不足 邮局协议的最大好处在于支持移动计算。由于用 户的信件是存放在POP服务器中而不是直接自动 存放到用户的计算机中的,这样用户就不必建立 与“邮局”的永久性连接,以等待随时可能寄来的电 子邮件,这使得那些不易于直接连入局域网络的 台式PC或笔记本机可以通过拨号上网(建立临时 的TCPIP连接)的方式方便地获得邮件服务。 这也是目前分散的互联网用户获得邮件服务的主 要形式。 离线收发邮件的不足之处在于容易受到垃圾邮件 的骚扰。而www邮局则较好地解决了此问题,因 为服务器已经自动拦截了相当数量的垃圾邮件。怎样用J2SE实现邮 件系统 Java提供了相应的程序接口Java

7、Mail是相应的邮件功能实现接口,通过此接 口,应用程序可以在黑盒状态下实现与邮件协议 的通信,完成邮件收发。实现机制类似于数据库 桥接程序原理。本项目中邮件收发实现过 程 使用JavaMail接收邮件的基本系统流程1、使用session建立会话2、使用store建立连接3、使用folder与制定文件夹建立连接4、使用message等类处理邮件本项目中邮件收发实现过 程 使用JavaMail发送邮件的基本系统流程1、使用session建立会话2、使用transport建立通信对象3、使用message构建邮件4、使用transport发送邮件本系统组建思路 因为实际上我们的目标系统就是邮件服务

8、器的客 户端,所以他的基本功能得以确定:1、实现pop3邮件服务器的收取与显示2、使用smtp邮件服务器发送邮件3、实现文本邮件与多附件的发送与接受4、实现邮件的删除功能 仿照 MS Outlook Express功能实现系统界面管理 系统主界面写邮件、收邮件、删除邮件、服 务器参数预置、邮件列表、邮件显示窗口。 新建和发送邮件界面 服务器参数设定界面pop3和smtp服务器参数 设定。 收取附件界面附件列表、保存功能。重点功能的实现技术JavaMail API如何支持邮件系统开发 ?发送邮件的类和方法Properties JavaMail需要Properties来创来创 建一个个Sessio

9、n对对象, 它将寻它将寻 找字符串“mail.smtp.host”,属属性值值就是发发送 邮邮件的主机。比如:Properties props = new Properties();Props.put(“mail.smtp.host”,””);SessionSession类代表JavaMail中的一个邮 件Session 。每一个基于 Javamail的应用程序至少有一个Session ,但是可以有任意多的 Session 。 Session对象需要知道用来处 理邮件的smtp服务器 。例程:Session sendMialSession;sendMailSession = Session.g

10、etInstance(props,null);Session类定义了基本的邮件会话 。就像Http会话 那样,我们 进行收发邮 件的工作都是基于这个会话 的。Session对象利用了 java.util.Properties对象获得了邮件服务器、用户名、密码信 息和整个应 用程序都要使用到的共享信息。 Transport JavaMail使用了两个两个 不同的类来类来 完成这两个这两个 功能: Transport 和 Store。Transport是用来发来发 送信息的 ,而Store用来来收信。使用Transport 的方法:Tranport transport;transport =sen

11、dMailSession.getTransport(“smtp”); 用JavaMail Session的对对象的getTransport方法来来初 始化Transport。传过传过 去的字符串申明了对对象所要使 用的协议协议 “smtp”,这极这极 大的节节省了我们们的时间时间 。 JavaMail已经内经内 置了很多协议协议 的实现实现 方法。Authenticator Authenticator 像类那样,JavaMail API通过使用授权者类 (Authenticator)以用户名、密码的方式访问那些 受到保护的资源,在这里“资源”就是指邮件服务器。 在javax.mail包中可以找

12、到这个JavaMail的授权者类 (Authenticator)。 在使用Authenticator这个抽象类时,我们必须继承 该抽象类,并且该继承类必须具有返回 PasswordAuthentication对象(用于存储认证时 要 用到的用户名、密码) getPasswordAuthentication()方法。并且要在 Session中进行注册,使Session能够了解在认证时 该使用哪个类 。Message Message对象存储我们实际发 送的电子邮件信息, Message对象被作为一个MimeMessage对象来创建 并且需要知道应当选择哪 一个JavaMail Session。使用

13、方法:Message newMessage = new MimeMesage(sendMailSession);接收邮件的类和方法Store建立Session对象后,就需要使用Store类建立与POP或者IMAP 服务器的通信连接,例程:Store store = session.getStore(“pop3”);Store.connect(host,username,pwd);Store是抽象类,它模拟了消息存储器及其内部目录(Folder) 访问协议 ,以存储和读取消息,由其子类提供具体实现 。客户 程序可以通过获 取一个Store对象来访问 消息存储器,以绝大多 数的存储器要求用户在访问

14、 前提供认证 信息,connect方法执 行了该认证过 程。与Transport类似,也可以指定Store使用协 议。邮件是读取邮件所以用pop3协议来读 取。 如: Store store=new Store(“pop3”); 然后认证 :store.connect(host,username,pwd) Folder 使用Folder类与指定的文件夹相连,例程:Folder folder = store.getFolder(“INBOX”);foler.open(Folder.READ_ONLY);Message message=folder.getMessage();folder.close(true);对本地邮件进行处理 先来了解一下每封邮件的构成: 邮件标题 邮件体,通常是multipart类型 正文,可能是文本,可能是网页 附件,多种类型的格式 正因为邮件格式多数情况下为嵌套类型,面对单一 协议的非智能处理,可行的办法就是采用循环(递归 )作业方式对每一部分邮件内容进行比对索取,完成 邮件解释。感谢老师的辛勤工作!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号