计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程

上传人:仙*** 文档编号:73510621 上传时间:2022-04-11 格式:DOC 页数:30 大小:919.50KB
收藏 版权申诉 举报 下载
计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程_第1页
第1页 / 共30页
计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程_第2页
第2页 / 共30页
计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程_第3页
第3页 / 共30页
资源描述:

《计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程》由会员分享,可在线阅读,更多相关《计算机论文精品基于JavaMail邮件系统的设计与实现毕业论文本论文阐述了Web邮件系统所涉及的几个重要协议对JavaMailAPI核心类进行了介绍并给出了其中发送邮件功能的详细设计过程(30页珍藏版)》请在装配图网上搜索。

1、基于JavaMail邮件系统的设计与实现摘 要本论文阐述了Web 邮件系统所涉及的几个重要协议,对JavaMail API核心类进行了介绍,并给出了其中发送邮件功能的详细设计过程。JavaMail结合JSP的结构化特性,易于实现灵活高效、方便移植的Web 邮件应用程序。关键词:文本邮件;HTML邮件;带附件邮件;JavaMailDesign and Implementation of Mail System Based on JavaMailAbstractThis paper first expatiated on some protocols come down to the Web ma

2、il system , and then introduced the architecture and core classes of JavaMail API. After that , the articlepresented the system framework and the detailed design process of mail sending. In conclusion , it can easily implement flexible , high effective and transplantable Web mail applications with J

3、avaMail and structured JSP.Keywords:text mail;html mail;attachment mail;javamail目录第一章 引(前) 言51.1 研究意义51.2 研究现状5第二章 相关邮件协议和JavaMail API62.1 相关邮件协议62.2 JavaMail API62.2.1 JavaMail API简介62.2.2 JavaMail API核心类7第三章 应用系统开发工具73.1 开发语言简介73.1.1 Java语言简介73.1.2 Jsp语言简介83.2 开发工具93.2.1 Eclipse93.2.2 Tomcat103.3

4、开发软件的安装103.3.1JAVA环境的安装与配置103.3.2Eclipse的安装123.3.3Tomcat的安装12第四章 JavaMail系统的实现124.1邮件发送功能-初步探索124.1.1邮件发送过程总览124.1.2文本邮件发送134.1.3 Html邮件发送164.2邮件发送功能的深入研究-带附件的邮件发送174.3文本邮件和Html邮件的接收功能的实现194.4 邮件发送系统的整合21第五章 结语28基于JavaMail邮件系统的设计与实现第一章 引(前) 言本文是一项基于JavaMail的邮件系统的综合性研究,使用Sun公司提供的JavaMail API实现电子邮件的发送

5、、电子邮件的接收等等功能。1.1 研究意义随着社会的发展,科技的进步,作为信息载体的计算机日益显露出其举足轻重的地位。当今社会已步入了信息社会,知识经济将成为新世纪的主导产业。人们传统的联系方式也在不断的被改变。伴随着Internet的发展,电子邮件以其使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻等等优点被广泛地应用,它使人们的交流方式得到了极大的改变。电子邮件已是人们沟通、交流的重要工具。由于E-mail是当今人们交流的重要工具之一,因而,对E-mail系统的研究也逐渐变的热起来。基于JavaMail邮件系统具有快捷、方便的优点,吸引了众多的网络用户,使其成为E-mail研究方向的热

6、点之一。最初人们在使用E-mail服务时,必须使用邮件客服端,如:Outlook、Foxmail等软件,去接收邮件服务器上的邮件。由于操作系统的不同,往往需要不同的邮件接收客户端,给人们接收邮件带来很大的不便。但是基于JavaMail的邮件系统只要一个网络浏览器就可以实现E-mail的日常收发功能,而网络浏览器是任何操作系统中都自带的软件,用户在世界任何一个角落任何一台计算机都可以进行E-mail的收发工作。此外,由于最初用户接收邮件的设置信息均保存在客服端,当用户重新安装操作系统或者更换计算机还要重新设置,而基于JavaMail的Web邮件系统的设置保存在邮件服务器上,不论你更换电脑还是系统

7、,收发邮件的方式都是按照以前的设置进行的,使邮件的收发更合你的口味。基于JavaMail的邮件系统让你不在为机器配置担忧,而且还为用户的邮件安全分担忧愁。由于最初需要使用客服端软件收发软件,硬件配置低的计算机就显得“爱莫能助”了。虽然计算机的发展使得硬件问题不在是个问题,但是不强调硬件的配置也是基于JavaMail邮件系统的一个优点之一。此外,由于客户端软件维护和升级困难,网络浏览器的更新速度要远远大于邮件客户端软件的更新速度,这就给用户一个更安全的环境。日前,基于JavaMail邮件系统的发展越来越成熟。多线程的设计方法,大大的提高了系统的通信效率和成本;采用MVC设计模式的邮件系统还大大的

8、减少了系统的维护量。当然,基于JavaMail的邮件系统缺乏对动态页面的支持能力,没有集成有效地数据库处理功能,也存在系统扩展性差、数据处理速度稍慢等缺点。但是,这些问题已经有了很好的起步,将不再是大的问题。总之,计算机的广泛应用,Internet的不断发展,E-mail在日常通讯中的地位越来越重要。虽然传统的C/S模式的邮件系统仍占有重要地位,但基于JavaMail的Web邮件系统会以其快捷、方便的等等优点为越来越多的人所接收,广泛的应用到各个领域,成为一名后起之秀。1.2 研究现状E-mail是信息化时代最重要的联系工具之一,在日常的工作学习中具有非常重要作用。对E-mail的研究也层出不

9、穷,基于JavaMail邮件系统的设计与实现大多数都是研究和使用Sun公司提供的JavaMail API去实现其邮件发送和接收功能。为了便于代码维护,使用JSP和Servelet方式实现JavaMail邮件系统;为了提高系统的效率和通信成本,又加入了多线程技术等等。第二章 相关邮件协议和JavaMail API 2.1 相关邮件协议邮件的传送要依赖于具体的传输协议,主要有:SMTP、POP3、IMAP、MIME。(1)SMTP:简单邮件传输协议,该协议定义了发送电子邮件的规范。邮件发送过程中,在SMTP基础上的发送邮件的应用程序与网络中的电子邮件服务器交换数据信息,最终把邮件传送至目录服务器。

10、 (2)POP:邮局协议,当前的版本为3,也称作POP3。POP 是Internet 上的大多数人用来接收邮件的机制。它为每个用户的每个邮箱定义支持,这是它所做的全部工作,也是大多数问题的根源。如果要从邮件服务器中查询特定帐户的邮件并下载到本地,就可以使用基于POP3协议的应用程序。(3)IMAP:用于接收消息的更加高级的协议,它是在RFC2060 中定义的。IMAP 的含义是Internet 消息访问协议,当前版本是第4 版,也称作IMAP4。使用IMAP 时,邮件服务器必须支持该协议。不能只是简单地把程序转变为支持IMAP,而不是支持POP,就指望能支持IMAP 中的一切。假定您的邮件服务

11、器支持IMAP,那么基于JavaMail 的程序就可利用在服务器上拥有多个文件夹的用户,并且这些文件夹可以被多个用户共享的功能。4)MIME:是多用途的网际邮件扩充协议。它不是一种邮件传输协议,相反,它定义传输的内容:消息的格式、附件等。许多文档都定义了MIME 协议,包含:RFC 822、RFC 2045、RFC2046 和RFC 2047。作为JavaMail API 的用户,一般不需要担心这些格式。但是,这些格式确实存在,并为您的程序所用。2.2 JavaMail API2.2.1 JavaMail API简介JavaMail API是SUN为Java开发者提供对电子邮件处理的延伸,能用

12、于读取、编写和发送电子消息的包(标准扩展)。为管理电子邮件提供了统一的应用编程接口,它可以处理各种e-mail格式(包括IMAP、POP、SMTP以及MIME)和其他Internet相关的讯息通信协定。用户可使用这种包创建邮件用户代理(Mail User Agent,MUA)类型的程序,它类似于Foxmail、Eudora以及Miceosoft Outlook这些邮件程序。其主要目的不是像发送邮件或其他邮件传输代理(Mail Transfer Agent,MTA)类型的程序那样用于传输、发送和转发消息。换句话说,用户可以与MUA类型的程序交互,以阅读和撰写电子邮件。MUA依靠MTA处理实际的发

13、送任务。2.2.2 JavaMail API核心类Session:Session类定义了一个基本邮件会话(session),是JavaMail API最高层入口类。所有其他类都是经由这个Session才得以生效。Session对象用java.util.Properties对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其他信息。Message :一旦获得Session对象,就可以继续创建要发送的消息。这由Message类来完成。因为Message是个抽象类,必需由一个子类来实现其具体功能, 多数情况下为javax.mail.internet.MimeMessage。MimeMes

14、sage是个能识别MIME类型和头的电子邮件消息,正如不同RFC中所定义的。虽然在某些头部或非ASCII字符也能被译码,但Message头只能被限制为用US-ASCII字符。Address:一旦创建了Session和Message,并将内容填入消息后,就可以用Address确定信件地址了。和Message一样,Address也是个抽象类。用户使用的是javax.mail.internet.InternetAddress类,它是Address的一个子类。Authenticator: JavaMail API也可以利用Authenticator通过用户名和密码访问受保护的资源。对于JavaMail

15、 API来说,这些资源就是邮件服务器。JavaMail Authenticator在javax.mail包中,要使用Authenticator,先创建一个抽象类的子类,并从getPasswordAuthentication()方法中返回PassaordAuthentication实例。创建完成后,必须向Session注册Authenticator。然后,在需要认证的时候,就会通知Authenticator。Transport:消息发送的最后一部分是使用Transport类。这个类用协议指定的语言发送消息(通常是SMTP)。它是抽象类,它的工作方式与Session有些类似。仅调用静态send()

16、方法,就能使用类的缺省版本:Transport.send(message)发送消息,然后关闭连接。Store :Store类实现特定邮件协议上的读、写、监视、查找等操作。通过javax.mail.Store类可以访问javax.mail.Folder类。Folder:Folder类用于分级组织邮件,并提供照javax.mail.Message格式访问e-mail的能力。第三章 应用系统开发工具本次程序设计所采用的工作环境为JAVA+JSP+Eclipse3.2。下面将分别介绍这两个环境。3.1 开发语言简介3.1.1 Java语言简介Java2是SUN公司推出的新一代面向对象的程序设计语言,它

17、是一种简单的面向对象的分布式可移植性能优异的多线程的动态语言。它具有以下的特点:(1)简单Java最初是为了对家用电器进行智能化控制而设计的一种语言,因此它特别的简单明了。它的简单性体现在以下三个方面。Java的编程风格类似于C+的风格,因此大家都比较熟悉。Java中没有C+中的指针和内存管理的概念,可以避免犯C+中的常见错误。在Java中有丰富的类库,大大方便了编程工作。(2)面向对象的特性面向对象性可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似于C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。(3)分布性Java有很强的网络特

18、性。通过它特有的类,可以方便地处理TCP/IP协议和访问网络资源。它的分布计算的特性正是它得以在网络时代风靡的重要原因。(4)鲁棒性Java中对应不同的类具有的Exception,正是这些不同的Exception可以防止因为程序员的错误而造成系统的崩溃。(5)安全性Java不支持指针,因此一切对内存的访问都必须通过对象的实例变量来进行,因此可以有效的防范病毒的入侵。(6)体系结构中立Java的解释器可以生成与系统体系结构无关的字节码指令,一个系统只要安装了Java虚拟机就可以执行Java程序了。(7)多线程性Java的多线程能够保证程序的并行执行。而且同步机制保证了对共享数据的正确操作,方便用

19、户在网络上的实时交互操作,提高系统的处理能力。(8)动态性Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行,并且Java通过接口来支持多重继承,使之比严格的继承类具有更灵活的方式和扩展性。同时用户也可以创建自己的特有的类,以方便操作和提高编程能力。3.1.2 Jsp语言简介JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JS

20、P标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java

21、 Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。3.2 开发工具3.2.1 EclipseEclipse:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于

22、通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。Eclipse是一种通用工具平台普遍适用的开放式扩展IDE,它提供了功能丰富的开发环境,允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。Eclipse的体系结构为: 底层为JAVA开发环境插件(J

23、DT),插件开发环境(PDE),其他的第三方插件。中层为Eclipse的图形界面(包括工作台,Jface,SWT),核心为工作空间(workspace)和运行时内核(runtime)。Eclipse的设计思想是:一切皆为插件。Eclipse的核心是非常小的,其他所有的功能都是以插件的形式附加到这个Eclipse核心之上。这样的功能插件包括他的图形API(称为SWT/JFace)、JAVA开发环境插件(JDT)、插件开发环境(PDE)等。Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。Eclipse对这些插件是动态载入动态调用的。所谓动态就是指,Eclip

24、se启动后要真正用到这个插件时,它才会被调入内存,当插件不再被使用时,它就会被在适当的时候清除出去。因此即使装了一大堆插件在Eclipse里,也不必担心某些不常用的插件白白占着内存。3.2.2 TomcatTomcat:Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomc

25、at 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 此外,我们还需要两个Jar包,一个是mail.jar,另一个是

26、activation.jar。这两个Jar包放在JavaMail/WEB-INF/lib下。3.3 开发软件的安装3.3.1JAVA环境的安装与配置在安装Eclipse之前,需要先安装JDK(Java Development Kits)。在JDK安装完成之后,一般需要设置计算机系统的环境变量,以便于其它软件确定JDK的安装位置。在WindowsXP操作系统环境,具体操作步骤如下:1.选择“开始”菜单中的“控制面板”命令,打开控制面板窗口,双击选择“系统”,打开如图1所示的“系统属性”对话框。2.单击“系统属性”对话框中的“环境变量”按钮,进入图2所示的“环境变量”对话框。在该对话框中可以设置只

27、有当前用户登录时才有效的用户变量,也可以设置该系统的所有用户登录时都有效的系统变量。3.在“环境变量”对话框中单击“新建”按钮,在打开图3所示的新建系统变量对话框输入变量名为JAVA_HOME,其环境变量的值应该设置为JDK的安装位置。4.然后在如图3所示的“环境变量”对话框中再次选择Path环境变量,将F:Program FilesJavajdk1.5.0_09bin添加到对应的变量值后面,注意和前面的值用“;”隔开。单击“确定”按钮即可完成JDK相关环境变量的设置。图1:系统属性对话框图2:环境变量对话框图3:新建系统变量对话框3.3.2Eclipse的安装 Eclipse是开放源代码的项

28、目,可以到www.eclipse.org 去免费下载Eclipse的最新版本。其中可以选择下载Eclipse SDK,它包括了Eclipse开发环境、Java开发环境、Plug-in开发环境以及所有源代码和文档。Eclipse在下载完成后,只需要将对应的压缩包文件eclipse S DK-3.1.1-win32.zip解压缩到指定位置,即可完成安装。Eclipse为中国用户提供了非常好的支持,通过安装Eclipse多国语言包,Eclipse可以自动实现开发环境的本地化,即自动根据操作系统的语言环境选择语言包。到www.eclipse.org 去免费下载对应Eclipse 3.1.1 版本的多国

29、语言包,称为Language Pack。下载完成后,可获得名称为NLpack-eclipse-SDK-3. 1.1a-win32.zip的压缩包,下面介绍具体的安装步骤:1.首先必须关闭Eclipse,注意在安装Eclipse各个插件工具时都需要先关闭Eclipse。2.对压缩包进行解压缩。3.在Eclipse安装目录下创建子目录links,并在该目录中新建一个文本文件,名称为language.start,在文件中键入如下一行信息。Path= d:eclipselanguage3.3.3Tomcat的安装Tomcat是开放源代码的项目,可以到www.apache.org 去免费下载Tomcat

30、的最新版本。下载apache-tomcat-6.0.16.zip,然后解压缩到C:javaTomcat 6.0文件夹中。从Tomcat 4.0开始,Tomcat已经不依赖环境变量中的CLASSPATH了。但是问了编写的Java程序可以顺利编译。Set catalina_home= C:javaTomcat 6.0Set classpath=.; C:javaTomcat 6.0libservlet-api.jar进入C:javaTomcat 6.0bin文件夹,双击startup.bat,Tomcat即可启动。第四章 JavaMail系统的实现4.1邮件发送功能-初步探索4.1.1邮件发送过程

31、总览发送一封邮件,一般需要六个步骤:第一步:确定要发送的邮件服务器的地址。如:String mailserver = “”;第二步:设置邮件的传输协议。如:Properties props = System.getProperties();props.put(mail.smtp.host,mailserver);第三步:建立邮件发送的连接。如:Session session = Session.getDefaultInstance(props,null);第四步:创建发送信息的载体。如:Message msg = new MimeMessage(session);第五步:设置相关的邮件属性,如

32、主题、发件人、收件人、内容以及邮件发送日期。如:msg.setFrom(new InternetAddress(from);/设置发信人地址msg.setRecipient(Message.RecipientType.TO,new InternetAddress(to); /设置收信人地址msg.setSubject(subject);/设置邮件主题msg.setSendDate(new Date();/设置发送日期msg.setText(content);/设置邮件内容第六步:发送邮件。如:Transport.send(msg);上述六个步骤适合任意类型的电子邮件的发送,也是电子邮件发送必须

33、的步骤,不同类型电子邮件的发送只是在个别部分的处理过程的不同。4.1.2文本邮件发送simplemail.htmlSendsimplemail.jsp发送文本邮件是JavaMail中最基本的操作。在这个程序中,用户可以在Html页面上输入要发送邮件的内容和地址,通过表单把邮件的内容提交给一个JSP页面进行处理。为了测试方便,使用James服务器做为邮件服务器。其用户窗口如下图(图4):图4 文本邮件发送用户信息输入页面Properties props=new Properties(); sendsession = Session.getInstance(props, null);处理用户信息的

34、JSP页面的主要代码如下:props.put(mail.smtp.host, localhost);props.put(mail.smtp.auth,true);定义一个Properties对象,获取系统属性并生成Session对象。向属性中写入SMTP服务器的地址,并设置SMTP服务器需要权限认证。 Message message = new MimeMessage(sendsession);根据Session对象,生成一个Message对象。由于Message类为抽象类,因此需用其子类MimeMessage类生成其实例。message.setFrom(new InternetAddress

35、(request.getParameter(from); message.setRecipient(Message.RecipientType.TO,new InternetAddress(request.getParameter(to); message.setSubject(new String(request.getParameter(subject).getBytes(ISO8859_1),GBK); message.setSentDate(new Date(); message.setText(new String(request.getParameter(text).getByte

36、s(ISO8859_1),GBK); message.saveChanges();上述代码设置了邮件的具体信息,如:收件人地址、发件人地址、e-mail标题、邮件发送时间、邮件正文等并保存对于email的修改。Transport transport;transport=sendsession.getTransport(smtp); transport.connect(localhost,jinny,jinny); transport.sendMessage(message,message.getAllRecipients(); transport.close();根据Session对象生成一个

37、Transport对象,连接到邮件服务器。此时即可发送e-mail,在发送e-mail后关闭transport对象,则可以大大节约系统资源。点击发送邮件,此时结果如图:图5 点击发送文本邮件的页面若输出“e-mail发送成功!”,则说明邮件发送成功,否则邮件发送失败。使用Foxmail查看邮件,结果如图:图6使用Foxmail查看文本邮件4.1.3 Html邮件发送发送Html邮件跟发送Text邮件没有太大的不同,创建邮件的时候稍微有所区别,其他各部分的操作都是相同。只需要调用setContent()方法,把content设置为:”text/html”。因此,我们在Html页面添加一个sele

38、ct,当用户选择以Html格式发送时,type就为html,邮件将以Html格式发送。htmlmail.htmlsendhtmlmail.jsp其登陆窗口和用户数据如下图(图):图7 HTML邮件发送用户信息输入页面String type = request.getParameter(type);sendhtmlmail.jsp主要代码如下:message.setContent(text,type+;charset=GB2312);获取邮件发送的类型。置邮件发送的类型,若type属性为“text/plain”,则邮件以文本格式发送。若type属性为“text/html”,则邮件以HTML格式发

39、送。点击发送邮件,此时结果如图:图8 HTML e-mail的发送这样,添加上述两行代码,HTML邮件的发送过程就结束了。若输出“e-mail发送成功!”,则说明邮件发送成功,否则邮件发送失败。使用Foxmail查看邮件,结果如图:图9 使用Foxmail接受HTML邮件4.2邮件发送功能的深入研究-带附件的邮件发送发送带附件的邮件最为复杂,它涉及很多方面的知识。在这里仍然采用JSP和JavaBean的方法实现带附件的邮件发送。此外,要完成附件上传功能还必须添加form的enctype属性,其值为”multipart/form-data”。其登陆窗口如下图(图):图10 带附件的邮件发送用户信

40、息输入页面BodyPart messageBodyPart=new MimeBodyPart(); messageBodyPart.setText(new String(request.getParameter(text).getBytes(ISO8859_1),GBK);sendattachmail.jsp的主要代码:Multipart multipart = new MimeMultipart();multipart.addBodyPart(messageBodyPart);生成一个BodyPart对象,由于BodyPart类是抽象类,故应由其子类MimeBodyPart类实例化对象。建立

41、第一部分:文本正文。创建一个Multipart对象,因为Multipart对象也是抽象类,因此,也需要由其子类MimeMultipart类生成子类。并且将第一部分的文本正文messageBodyPart对象添加进去。attachBodyPart=new MimeBodyPart();DataSource source=new FileDataSource(attachment);attachBodyPart.setDataHandler(new DataHandler(source);attachBodyPart.setFileName(attachment);multipart.addBod

42、yPart(attachBodyPart); message.setContent(multipart);再生成一个BodyPart对象,用来处理附件。使用setDataHandler()方法设置附件的数据处理器,使用setFileName()方法设置文件名,并将附件对象添加到Multipart对象中去。点击发送邮件,结果如图:图11 带附件邮件的发送页面使用Foxmail查看邮件,结果如图:图12 使用Foxmail接收带附件邮件4.3文本邮件和Html邮件的接收功能的实现在JavaMail中,接收文本邮件和HTML格式邮件的处理方法基本上是一致的。在这个程序中, 首先,由用户输入邮件服务器

43、,由用户给出邮箱的用户名和密码,登陆邮件服务器查看邮件。此程序,仍然使用HTMT页面作为用户输入信息页面,之后采用JSP和JavaBean的方法显示用户邮箱中邮件的数目和查看单封邮件。其登陆窗口如下图(图):图13 登陆邮箱页面Store store=recesession.getStore(pop3); String host=request.getParameter(host); String user=request.getParameter(user); String password=request.getParameter(password); store.connect(host

44、,user,password);checklogin.jsp的主要代码:创建一个Store对象,并根据得到的三个参数连接到邮件服务器中的用户邮箱。Folder inbox=store.getFolder(INBOX); inbox.open(Folder.READ_ONLY);打开收件箱,在此,设置为邮件只读。Message message=inbox.getMessage(i);String title=message.getSubject();使用getMessage()方法获取单封信件,使用getSubject()方法获取邮件的主题,使用getFrom()方法获取发件人等等。标题:a h

45、ref=messagedetail.jsp?msg=&host=&user=&password=上段代码即可查看单封邮件,并传递一些参数信息。点击进入邮箱,结果如图: 图14 用户邮箱邮件列表点击第一封邮件的标题,显示如图:图15 查看单封邮件4.4 邮件发送系统的整合由于以上各个程序只强调实现各自的主要功能,整合各个模块,就形成了基于JavaMail邮件系统。在本系统中,采用HTML页面由用户输入数据,JSP页面用来调用JavaBean处理邮件信息,并向客服端输入发送结果。如果邮件处理正确,则向客服端输出“邮件发送成功!”,否则,输出“邮件发送失败”。由于代码重复,在此只给出个各部分代码并作

46、简单的功能介绍。loginmail.htmlcheckloginmail.jsplistlogin.htmlsendmail.htmllistfolder.jspfiltermail.jsplistfolder.jspdetailmail.jsp其各部分代码如下:/loginmail.html登陆邮件服务器 登陆邮件服务器 邮件主机名: 用户名: 密码: 进入我的邮箱 该段代码主要起到和用户进行交互的作用,用户输入必要的信息进入用户的邮箱。/checklogin.jsp登陆邮件服务器验证 % try /获得一个session对象,并设置其属性为true Properties props=new

47、 Properties(); Session recesession=Session.getInstance(props,null); recesession.setDebug(true); /创建一个Store对象,并根据得到的三个参数连接到邮件服务器中的用户邮箱 Store store=recesession.getStore(pop3); String host=request.getParameter(host); String user=request.getParameter(user); String password=request.getParameter(password)

48、; store.connect(pop.+host,user,password); /将三个参数放到Session中保存起来,供后续页面使用 session.setAttribute(host,host); session.setAttribute(user,user); session.setAttribute(password,password); response.sendRedirect(listlogin.html); catch(MessagingException m) out.println(m.toString(); out.println(登陆邮件服务器失败,请返回); %

49、 此段代码检测用户在loginmail.html页面输入的信息是否正确,如果信息正确,将转向用户操作页面(listlogin.html);如果不正确,提示用户输入数据不正确并将转向用户登录页面(loginmail.html)。/listlogin.html提示登陆效果,并为用户提供操作选项  在登陆邮件服务器后,您可以: 发送e-mail 我的收件箱 我的回收站 用户成功登陆邮箱后,提供用户一些操作,如:发送邮件、我的收件箱、我的回收站等。/sendmail.html发送e-mail的表单写信 收件人地址: 主题: 内容: 附件:      

50、 用户点击发送邮件操作时的用户信息录入界面,当用户点击提交按钮,sendmail.jsp将处理用户信息并返回结果。/sendmail.jsp发送e-mail% /获取用户信息参数和邮件主机名 String host=(String)session.getAttribute(host); String user=(String)session.getAttribute(user); String password=(String)session.getAttribute(password); try /获得属性,并生成Session对象 Properties props=new Properti

51、es(); Session sendsession; Transport transport; sendsession = Session.getInstance(props, null); /向属性中写入SMTP服务器的地址 props.put(mail.smtp.host, smtp.+host); /设置SMTP服务器需要权限认证 props.put(mail.smtp.auth,true); /设置输出调试信息 sendsession.setDebug(true); /根据Session生成Message对象 Message message = new MimeMessage(send

52、session); /设置发信人地址 message.setFrom(new InternetAddress(user+host); /设置收信人地址 message.setRecipient(Message.RecipientType.TO,new InternetAddress(request.getParameter(to); /设置e-mail标题 message.setSubject(new String(request.getParameter(subject).getBytes(ISO8859_1),GBK); /设置e-mail发送时间 message.setSentDate(

53、new Date(); /设置e-mail内容 message.setText(new String(request.getParameter(text).getBytes(ISO8859_1),GBK); /获得attachment参数 String attachment=new String(request.getParameter(attachment).getBytes(ISO8859_1),GBK);/如有附件if (!attachment.equals() /建立第一部分:文本正文 BodyPart messageBodyPart=new MimeBodyPart(); messageBodyPart.setText(new String(request.getParameter(text).getBytes(ISO8859_1),GBK); / 建立多个部分Multipart实例 Multipart multipart = new MimeMultipart();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!