联系方式: 微信:biyebang QQ: 629001810
基于Javamail的邮件收发系统系统+LW+开题报告+任务书+外文翻译+文献综述+答辩PPT
本次程序设计所采用的开发环境为:
(1)AMD Athlon(TM),512M内存,80G硬盘
(2)Microsoft® Windows™ XP Professional
(3)The Eclipse Foundation®Eclipse3.4(Java)
(4)Sun® JDK1.5或以上
运行环境为:
(1)Intel® Pentium® 2及以上处理器,32M以上内存,4G以上硬盘
(2)Microsoft® Windows™ 9X/NT操作系统
(3)800*600或以上的屏幕分辨率
(4)确保机器上安装有JDK1.5或者以上版本
3.1 Java开发语言简介
Java 2是SUN公司推出的新一代面向对象的程序设计语言,它是一种简单的面向对象的分布式可移植性能优异的多线程的动态语言。它具有以下的特点:
(1)简单
Java最初是为了对家用电器进行智能化控制而设计的一种语言,因此它特别的简单明了。它的简单性体现在以下三个方面[12]:
①Java的编程风格类似于C++的风格,因此大家都比较熟悉。
②Java中没有C++中的指针和内存管理的概念,可以避免犯C++中的常见错误。
③在Java中有丰富的类库,大大方便了编程工作。
(2)面向对象的特性
面向对象性可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似于C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。
(3)分布性
Java有很强的网络特性。通过它特有的类,可以方便地处理TCP/IP协议和访问网络资源。它的分布计算的特性正是它得以在网络时代风靡的重要原因。
(4)鲁棒性
Java中对应不同的类具有的Exception,正是这些不同的Exception可以防止因为程序员的错误而造成系统的崩溃。
(5)安全性
Java不支持指针,因此一切对内存的访问都必须通过对象的实例变量来进行,因此可以有效的
防范病毒的入侵。
(6)体系结构中立
Java的解释器可以生成与系统体系结构无关的字节码指令,一个系统只要安装了Java虚拟机就可以执行Java程序了。
(7)多线程性
Java的多线程能够保证程序的并行执行。而且同步机制保证了对共享数据的正确操作,方便用户在网络上的实时交互操作,提高系统的处理能力。
(8)动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行,并且Java通过接口来支持多重继承,使之比严格的继承类具有更灵活的方式和扩展性。同时用户也可以创建自己的特有的类,以方便操作和提高编程能力。
3.2 开发工具Eclipse
Eclipse:Eclipse是一个开放源代码的、基于 Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java DevelopmentTools,JDT)。Eclipse还包括插件开发环境(Plug-inDevelopment Environment,PDE),这个组件主要针对希望扩展 Eclipse的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。
Eclipse是一种通用工具平台——普遍适用的开放式扩展IDE,它提供了功能丰富的开发环境,允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。Eclipse的体系结构[13]为: 底层为JAVA开发环境插件(JDT),插件开发环境(PDE),其他的第三方插件。中层为Eclipse的图形界面(包括——工作台,Jface,SWT),核心为工作空间(workspace)和运行时内核(runtime)。
Eclipse的设计思想是:一切皆为插件。Eclipse的核心是非常小的,其他所有的功能都是以插件的形式附加到这个Eclipse核心之上。这样的功能插件包括他的图形API(称为SWT/JFace)、JAVA开发环境插件(JDT)、插件开发环境(PDE)等。Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
Eclipse对这些插件是动态载入动态调用的。所谓动态就是指,Eclipse启动后要真正用到这个插件时,它才会被调入内存,当插件不再被使用时,它就会被在适当的时候清除出去。因此即使装了一大堆插件在Eclipse里,也不必担心某些不常用的插件白白占着内存。
3.3 开发软件的安装
3.3.1 JAVA环境的安装与配置
在安装Eclipse之前,需要先安装JDK(Java DevelopmentKits)。
在JDK安装完成之后,一般需要设置计算机系统的环境变量,以便于其它软件确定JDK的安装位置。在WindowsXP操作系统环境,具体操作步骤如下:
1.选择“开始”菜单中的“控制面板”命令,打开控制面板窗口,双击选择“系统”,打开如图3-1所示的“系统属性”对话框。
2.单击“系统属性”对话框中的“环境变量”按钮,进入图3-2所示的“环境变量”对话框。在该对话框中可以设置只有当前用户登录时才有效的用户变量,也可以设置该系统的所有用户登录时都有效的系统变量。
3.在“环境变量”对话框中单击“新建”按钮,在打开图3-3所示的新建系统变量对话框输入变量名为JAVA_HOME,其环境变量的值应该设置为JDK的安装位置。
4.然后在如图3-2所示的“环境变量”对话框中再次选择Path环境变量,将%JAVA_HOME%\bin;添加到对应的变量值后面,注意和前面的值用“;”隔开。单击“确定”按钮即可完成JDK相关环境变量的设置。
5.在“环境变量”对话框中单击“新建”按钮,在打开图3-5所示的新建系统变量对话框中输入变量名为CLASSPATH,其环境变量的值设置为dt.jar和tools.jar的安装位置。
3.3.2Eclipse的安装
Eclipse是开放源代码的项目,可以到www.eclipse.org去免费下载Eclipse的最新版本。其中可以选择下载Eclipse SDK,它包括了Eclipse开发环境、Java开发环境、Plug-in开发环境以及所有源代码和文档。
Eclipse在下载完成后,只需要将对应的压缩包文件Eclipse—SDK-3.4.2-win32.zip解压缩到指定位置,即可完成安装。
3.3.3 javamail的安装
下载javamail.rar后解压得到两个包:mail.jar和activation.jar,把它导入到所建工程的lib目录下即可。
Javamail API使邮件的发送与接收得到大大的简化。本文所开发的邮件客户端程序是在Eclipse
环境下实现的。其主要实现如下基本功能:
(1) 收取并显示POP3邮件服务器上指定邮箱的邮件;
(2) 使用SMTP邮件服务器发送邮件;
(3) 邮件附件的发送与接受;
(4) 删除邮件;
邮件客户端的功能界面如下图4-1所示:
图4-1系统界面
4.1环境配置与界面搭建
在Eclipse中创建工程后,首先为工程添加javamail和javabeansActivationFrame Work开发包,然后使用swing图形工具包搭建各个程序界面,并在使用Javamail API的类文件中导入相关的API包,即在程序的开头添加下面的语句:
import javax.mail.*;
import javax.internet.*;
import javax.activation.*;
//装载服务器属性,并与服务器建立连接
String smtpHost=null,sendAddress=null,userName=null,password=null;
Properties p = new Properties();
try {
//从文件中读入相关的服务器属性设置
FileInputStream fileIn = new FileInputStream("smtp.properties");
p.load(fileIn);
smtpHost=p.getProperty("smtp.host");
sendAddress=p.getProperty("smtp.address");
userName=p.getProperty("smtp.username");
password=p.getProperty("smtp.password");
fileIn.close();
//创建与服务器的对话
p=new Properties();
p.put("mail.smtp,host",smtpHost);
p.put("mail.smtp.auth","true");//设置身份验证为真,如果发邮件时需要身份验证必须设为真
session=Session.getInstance(p,null);
session.setDebug(true);
}
catch (Exception ex) {
System.out.println("装载服务器属性出错!");
ex.printStackTrace();
}
//建构邮件信息
try{
msg=new MimeMessage(session);
//处理邮件头部
if(!to.equals(""))
msg.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
if(!cc.equals(""))
msg.addRecipient(Message.RecipientType.BCC,new InternetAddress(cc));
msg.setSubject(subject);//设置邮件主题
msg.setFrom(new InternetAddress(sendAddress));
msg.setSentDate(new Date());//设置邮件发送日期
Multipart mp=new MimeMultipart();//创建用于封装邮件的Multipart对象
//处理邮件正文
MimeBodyPart mbp1=new MimeBodyPart();
mbp1.setText(contentArea.getText());
mp.addBodyPart(mbp1);
//处理邮件附件
MimeBodyPart mbpAttatch;
FileDataSource fds;
BASE64Encoder enco=new BASE64Encoder();
String sendFileName="";
if(attatchFiles.size()!=0){
for (int i = 0; i < attatchFiles.size(); i++) {
mbpAttatch = new MimeBodyPart();
fds = new FileDataSource(attatchFiles.get(i).toString());
mbpAttatch.setDataHandler(new DataHandler(fds));
//将文件名进行BASE64编码
sendFileName="=?GB2312?B?"+enco.encode(new String(fds.getName().getBytes(),"gb2312").getBytes("gb2312"))+"?=";
mbpAttatch.setFileName(sendFileName);
mp.addBodyPart(mbpAttatch);
}
}
//封装并保存邮件信息
msg.setContent(mp);
msg.saveChanges();
}catch(Exception ex){
System.out.println("构建邮件出错!");
ex.printStackTrace();
}
4.3.3 创建Transport对象发送邮件,界面如图4-3。
try{
Transport transport=session.getTransport(“smtp”);
transport.connect(smtpHost,userName,password);
transport.sendMessage(msg,msg.getAlRecipients());
transport.close();
System.ou.t.println(“发送邮件成功!”);
}
catch(Exception ex)
{
System.out.println(“发送邮件失败!”);}
版权所有© 帮我毕业网 并保留所有权利