基于Java+Javamail的邮件收发系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于Java+Javamail的邮件收发系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

文章目录:

  • 基于Java+Javamail的邮件收发系统设计与实现(毕业论文+程序源码)
    • 1、项目简介
    • 2、资源详情
    • 3、关键词
    • 4、毕设简介
    • 5、资源下载

1、项目简介

  1. 本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。SMTP(简单邮件传输协议)是专门用来发送邮件的。POP(邮局协议)是专门用于接收邮件的。JavaMail API是一种可选的、能用于读取、编写和发送电子消息的标准扩展包。
  2. 本文主要可分为四个部分。第一部分介绍了Javamail邮件系统的意义和现状。第二部分具体介绍了几种相关协议和Javamail API。第三部分主要介绍了系统的开发工具JAVA语言、Eclipse及其安装过程与配置方法。第四部分详细阐述了Javamail邮件收发系统的实现过程。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:13942个字29页
包含内容:整套源码+完整毕业论文+答辩PPT


3、关键词

SMTP,POP,JAVAMAIL,邮件收发


4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

第一章 绪 论

本文是一项基于JavaMail的邮件系统的综合性研究,使用Sun公司提供的JavaMail API实现电子邮件的发送、电子邮件的接收等等功能。
1.1 电子邮件介绍
电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。

电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式[1]。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的—个实体。因为电子邮件是通过邮件服务器(mai1 server)来传递档的。通常mail server是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请—个信箱账号,就可使用这项快速的邮件服务。

电子邮件的工作原理:

  1. 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。
    电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。
  2. 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的—个电子信箱。并确定—个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作,系统功能主要由软件实现。
  3. 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另—个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。

1.2 研究意义
省略

1.3 研究现状
E-mail是信息化时代最重要的联系工具之一,在日常的工作学习中具有非常重要作用。对E-mail的研究也层出不穷,基于JavaMail邮件系统的设计与实现大多数都是研究和使用Sun公司提供的JavaMail API去实现其邮件发送和接收功能。
省略

第二章 相关邮件协议和JavaMail API

2.1 相关邮件协议
邮件的传送要依赖于具体的传输协议,主要有:SMTP、POP3、MIME。
(1)SMTP:简单邮件传输协议,它是一组用于由源地址到目的地传送邮件的规则,或者说是由它来控制信件传输的一种中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转邮件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只需要几分钟。SMTP的开发最初是为了在封闭的网络中传送相对来说不太重要的简短信件,而不是为了在互联网中传送重要而敏感的信息,因此最初通过SMTP传输信件时 ,安全性不高。

(2)POP:邮局协议[5],当前的版本为3,也称作POP3。POP是一种允许用户从邮件服务器收发邮件的协议,它有两种版本,即POP2和POP3,都具有简单的电子邮件存储转发功能。POP2和POP3本质上类似,都属于离线式工作协议,但是由于使用了不通的协议端口,两者并不兼容。与SMTP协议相结合,POP3是目前最常用的电子邮件服务协议。在离线工作方式下,用户收发邮件时,首先通过POP3客户程序登录到支持POP3协议的邮件服务器,然后发送邮件及附件;接着,邮件服务器为该用户收存的邮件传送给POP3客户程序,并将这些邮件从服务器上删除;最后,邮件服务器将用户提交的发送邮件,转发到运行SMTP协议的计算机中,通过它实现邮件的最终发送。在为用户从邮件服务器收取邮件时,POP3是以该用户当前存储在服务器上全部邮件为对象进行操作的,并一次性将它们下载到用户端计算机中。一旦客户的邮件下载完毕,邮件服务器对这些邮件的暂存托管即告完毕。使用POP3,用户不能对他们贮存在邮件服务器上的邮件进行部分传输,离线工作方式适合那些从固定计算机上收发邮件的用户使用。

(3)MIME: 多用途网际邮件扩充协议,是最初的互联网电子邮件协议的一个扩展,说明了如何安排消息格式使消息在不同的邮件系统内进行交换。 MIME 的格式灵活,使人们能使用这一协议在互联网上交换不同类型的数据文件:音频,视频,图像,应用软件和其他类型的文件,也包括在最初的协议—简单邮件传送协议(SMTP)中的ASCII文本。

(4)IMAP:IMAP使用在接收信息的高级协议,目前版本为第4版,所以也被称为IMAP4。需要注意的是在使用IMAP时,邮件服务器必须支持该协议。从这个方面讲,我们并不能完全使用IMAP来替代POP,不能期待IMAP在任何地方都被支持。假如邮件服务器支持IMAP,那么我们的邮件程序将能够具有以下被IMAP所支持的特性[6]:每个用户在服务器上可具有多个目录,这些目录能在多个用户之间共享。其与POP相比高级之处显而易见,但是在尝试采取IMAP时,我们认识到它并不是十分完美的。由于IMAP需要从其它服务器上接收新信息,将这些信息递送给用户,维护每个用户的多个目录,这都为邮件服务器带来了高负载。并且IMAP与POP的一个不同之处是POP用户在接收邮件时将从邮件服务器上下载邮件,而IMAP允许用户直接访问邮件目录,所以在邮件服务器进行备份作业时,由于每个长期使用此邮件系统的用户所用的邮件目录会占有很大的空间,这将直接导致邮件服务器上磁盘空间暴涨。

(5)NNTP和其它的第三方协议:正因为JavaMail API在设计时考虑到与第三方协议实现提供商之间的分离,故我们可以很容易的添加一些第三方协议。SUN维护着一个第三方协议实现提供商的列表:http://java.sun.com/products/javamail/Third_Party.html,通过此列表我们可以找到所需要的而又不被SUN提供支持的第三方协议:比如NNTP这个新闻组协议和S/MIME这个安全的MIME协议。

2.2 JavaMail API
2.2.1 JavaMail API简介
JavaMail API是SUN为Java开发者提供对电子邮件处理的延伸,能用于读取、编写和发送电子消息的包(标准扩展)。为管理电子邮件提供了统一的应用编程接口,它可以处理各种e-mail格式(包括IMAP、POP、SMTP以及MIME)和其他Internet相关的讯息通信协定。

用户可使用这种包创建邮件用户代理(Mail User Agent,MUA)类型的程序,它类似于Foxmail、Eudora以及Miceosoft Outlook这些邮件程序。其主要目的不是像发送邮件或其他邮件传输代理(Mail Transfer Agent,MTA)类型的程序那样用于传输、发送和转发消息[7]。换句话说,用户可以与MUA类型的程序交互,以阅读和撰写电子邮件。MUA依靠MTA处理实际的发送任务。

2.2.2 JavaMail API核心类
省略

2.3.3 JavaMail API的应用
(1)阅读电子邮件
对于阅读邮件来说,首先要获取一个会话,然后获取并连接到一个相应的用于您的收件箱的存储上,接着打开相应的文件夹,再获取消息。同时,不要忘记了操作完成后关闭连接。
步骤如下:
① 创建一个Properties 对象,Session 对象通过Properties 对象来接受选项,在这种情况下,没有选项,但仍然需要Properties 对象。
② 创建Session 对象,并不直接对Session 实例化,而是通过调用getDefaultInstance
③ 使用Session.getStore 来获取服务器的POP3存取,也可以指定IMAP。
④ 使用store.connect 来创建一个从store 对象到实际服务器上的活连接。
⑤ 用store.getFolder 找到INBOX(收件箱)文件夹(POP3 存储里唯一的文件夹),对IMAP 服务器而言,可以访问不同的文件夹。用folder.open 以只读方式打开文件夹。
⑥ folder.getMessages 获得一组消息,这个数组效率高,因此它仅当需要结果传输数据。使用JavaMail 获取邮件,部分关键代码如下:

public void sendMessage( String host,String from,String to,String content)
throws IOException{try{// Get system properties
Properties props = System.getProperties();
// Setup mail server
props.put("mail.smtp.host", host);
// Get session
Session session = Session.getDefaultInstance (props,null);
// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
message.setSubject("Hello JavaMail");
message.setText(content);
// Send message
Transport.send(message);
}
catch(IOException e)
{e.printStackTrace();
}
}

(2)发送电子邮件
发送电子邮件消息涉及到获取会话、创建和填充消息并发送消息这些操作。在获取Session 时,通过为要传递的Properties 对象设置mail.smtp.host属性来指定所用的SMTP 服务器。

(3)转发电子邮件
转发消息涉及的内容要稍微多一点,没有一个专门用于转发消息的方法,可以通过处理组成消息的各个部分来创建要转发的消息。一条邮件消息可由多个部分组成,每一部分是一个BodyPart(报文部分),或更特殊一点,在操作MIME 消息时则是MimeBodyPart [11]。不同的报文部分组合到一个称为Multipart 的容器中,或者更特殊一点,是一个MimeMultipart 容器。要转发消息,用户需要创建一个用于消息文本的部分,和用于要转发的消息的第二个部分,并将这两个部分组合成一个Multipart(多个部分)。然后, 可以把这个Multipart添加到一个合适的注明地址的消息中并发送它。

这就是转发消息的过程。要把一条消息的内容复制给另一条消息,只需通过它的ataHandler 类复制即可,它是出自于JavaBeans Activation Framework的一个类。

上面着重分析和探讨基于JavaMail API 的邮件服务系统的设计和实现的相关技术。为系统实际开发过程中充分利用Java 编程语言的开放性、平台无关性等优点,极大地提高了系统的效率和性能。

第三章 应用系统开发工具

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
省略

3.3 开发软件的安装
3.3.1 JAVA环境的安装与配置
省略

3.3.2 Eclipse的安装
省略

3.3.3 javamail的安装
省略

第四章 JavaMail系统的实现

Javamail API使邮件的发送与接收得到大大的简化。本文所开发的邮件客户端程序是在Eclipse
环境下实现的。其主要实现如下基本功能:
(1) 收取并显示POP3邮件服务器上指定邮箱的邮件;
(2) 使用SMTP邮件服务器发送邮件;
(3) 邮件附件的发送与接受;
(4) 删除邮件;
邮件客户端的功能界面如下图4-1所示:

图4-1 系统界面
4.1环境配置与界面搭建
在Eclipse中创建工程后,首先为工程添加javamail和javabeans ActivationFrame Work开发包,然后使用swing图形工具包搭建各个程序界面,并在使用Javamail API的类文件中导入相关的API包,即在程序的开头添加下面的语句:
import javax.mail.;
import javax.internet.
;
import javax.activation.*;

4.2设置邮件服务器参数的实现
用户在收发邮件时,需要设置邮件服务器主机、收发邮件帐户及密码等信息。因此系统提供对上述信息的设置与存储的功能,这里,我们采用属性文件的形式存储SMTP 和POP3 邮件服务器属性设置。其文件名为smtpPop3.properties,位于工程的根目录下,可使用java.uitl. Properties 类的setProperty()方法和getProperty() 方法[14]对属性文件中的属性内容进行存取。本系统smtp Pop3.properties文件的内容格式如下:
smtpPop3.pop3host=pop3 邮件服务器地址(如pop3.sina.com.cn )
smtpPop3.smtphost=smtp 邮件服务器地址(如smtp.sina.com.cn)
smtpPop3.address=收发邮件帐户(如xyz@sina.com)
smtpPop3.username=用户名(如xyz)
smtpPop3.password=密码(如654321)

图4-2 POP3与SMTP服务器属性设置

4.3 创建与发送邮件功能的实现
发送邮件的基本过程为:点击主界面中的“创建邮件”按钮后,弹出新邮件编辑窗体,在该窗体中编辑新邮件,选择邮件附件后,点击“发送”按钮,程序根据输入的邮件信息构造邮件,并将其发送。其具体实现步骤和关键代码为:
4.3.1 装载邮件服务器属性, 并与其建立连接
用java.uitl.Properties 类的getProperty () 方法从属性文件smtpPop3.properties中取得smtp 邮件服务器的地址、用户帐号、用户邮箱地址、密码信息,创建与SMTP 服务器连接的Session 会话。

//装载服务器属性,并与服务器建立连接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();}

4.3.2 构建邮件
获取收件人地址、抄送人地址、邮件主题、附件等信息构建邮件。包括设置邮件标题&发送时间,处理邮件正文和附件文件。这里,在构建邮件时,对含有中文字符的附件文件名,进行BASE64 [15]编码,否则,收邮件时附件名将为乱码。程序中使用类sun.mism.BASE64Encoder 实现BASE64 编码。

//建构邮件信息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。

图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(“发送邮件失败!”);}

4.4 接收邮件功能的实现
在点击“接收邮件”按钮后,用户可以收取并阅读邮件。这时,系统首先从指定接收邮件的服务器中收取邮件,并将邮件的发件人、邮件主题以及邮件日期信息以列表形式显示出来;其次是在该邮件列表中点击某封邮件时, 可以显示该邮件的详细信息,包括邮件内容、附件列表等。其具体实现步骤和关键代码如下:
4.4.1 获取服务器信息
与发送邮件时获取SMTP 服务器属性一样,接收邮件时要从smtpPop3.properties 文件中取得Pop3 服务器信息, 并建立Session 会话。
4.4.2 建立通信连接
获取邮件服务器上的邮件夹,并将其以列表形式显示,代码如下[16]:

try{Store store =session.getStore(“pop3”);
Store.connect(opoHost,userName,password);
Folder folder=store.getFolder(“Inbox”);//取得store中的Folder邮件夹
mailListPanei.model.setFolder(folder);//将邮箱中的邮件显示在表格中
}catch(Exception ex){System.out.println(“服务器连接失败!”);
Return;
}

4.4.3显示邮件
在邮件显示列表中点击某封邮件,根据该邮件的编号获得该邮件并存放在一个Message 对象message 中,然后使用Message类所提供的方法将邮件的主题、发件人、收件人、邮件体、附件信息解析并显示出来。如果将这个邮件显示在一个面板viewPanel中,则ViewPanel 类的主要代码如下。其效果图如图4-4。

Class ViewPanel extends Jpanel{Message message = null;// 用来存放显示的邮件
Vector attachmentFiles = new Vector();//用来存放邮件所带的附件列表
Vector attachmentInutStream = new Vector();//用来存放与附件列表对应的附件数据流
void setMessage(Message message){this.message = message;
mailContentArea.setText(“”);//清空邮件内容显示区域
if(message!= null){loadHeader();//本类中的方法,用来显示有关邮件头信息
attachmentFiles.clear();//清空邮件附件列表向量,用来存放新邮件的附件列表
attchmentInputStream.clear();//清空,用来存放新邮件的所带附件的数据流
loadBody(message);//本类中的方法,用来解释并显示邮件内容与附件
}}
loadHeader()方法用来显示邮件头信息,包括邮件的主题、收件人、发件人。使用Message类getForm()方法、getRecipients()方法和getSubject()方法获取后并将其显示出来。关键代码如下:
String form = message.getForm().toString();//获取邮件发件人
String subject = message.getSubject();//获取邮件主题
String to = message.getRecipients(Message.RecipentType.TO)[0].toString();
//获取收件人
LoadBody(Part part)方法用来解释并显示邮件内容与附件。方法的入口参数是一个Part 类型的参数, Part 为一个接口, Message 类、BodyPart 类等都实现该方法。调用方法时传入的参数为一个Message 对象。解释邮件的基本思路为:当邮件为Multipart 类型时, 依次取出邮件的各个部分;如果邮件的某个部分不为Multipart 类型, 则该部分应为正文或附件;此时再使用getDisposition()方法进一步判断该部分为正文还是附件, 方法返回值为null 时为正文, 方法返回值为Part.ATTACHMENT 或为Part.INLINE 时为附件。loadBody (Part part) 方法需要用到的类为:javax.mail.internet.MimeBodyPart、javax.activation.FileDataSource、javax.mail.Multipart、javax.mail.MimeMultipart、javax.mail.BodyPart[17]。其中Multipart 类和BodyPart 类是抽象类,MimeMultipart 类和MimeBodyPart 类分别是继承于Multipart 类和BodyPart 类并支持MIME 的实现类, 而FileDataSource 是用来处理附件的类。

图4-4 接收邮件

图4-5 保存邮件附件

4.5 删除邮件功能的实现
用户点击系统主窗体的,删除邮件-按钮后,系统将邮件的表格中当前被选中的邮件删除,并刷新邮件显示表格。其实现代码如下:

message[deleIndex].setFlag(Flags.Flag.DELETED,true);
folder.close(true);
folder.open(Folder.READ_WRITE);
message = folder.getMessage();
fireTableDataChanged();//刷新邮件显示表格数据

其中deleteIndex为被选中邮件在邮件列表中的序号,由邮件显示表格的时间程序获得。
上面使用javamail API所实现的邮件客户端程序具备了一个Email收发系统的基本功能,在此基础上,可以进一步添加其它的功能,比如转发邮件、回复邮件等,使其成为一个功能完善的邮件客户端系统。

第五章 结语

本文首先介绍了电子邮件的工作原理,开发背景以及研究现状,然后介绍了JavaMail邮件系统的开发过程中所涉及的协议,并简单的介绍了JavaMail API中重要的类和JavaMail开发环境以及开发语言Java的特点。在系统的设计过程中,由浅入深的实现了E-mail收发系统的发送、接收功能,等基本功能,并最终实现了各个子模块的整合,形成了简单的基于JavaMail的邮件收发系统。在此基础上,可以进一步添加其它的功能,比如转发邮件、回复邮件等,使其成为一个功能完善的邮件客户系统。

在这次设计实现基于JavaMail邮件系统的过程中,我学到了很多的知识和经验,为学习Java编程提供了一次很好的实践的机会。在此,谢谢我的指导教师以及学校的精心安排与指导。

参考文献

[1]贺文,顾训穰。基于Web的客户端电子邮件系统的实现[J]。计算机工程与应用,2001,(8):56—58。
[2] Java程序设计与应用开发。於东军等编著。清华大学出版社, 2005。
[3]姚伏天,金连甫,潘敏。基于服务器端安全电子邮件系统的设计与实现[J]。计算机科学,2004,31(8):35—38。
[4] Java邮件开发详解。张孝祥。电子工业出版社,2007。
[5]卢秉亮,王玉湘,许莉。基于WINDOWS环境POP3协议邮件接收客户端的实现[J]。沈阳航空工业学院学报,2006,23(3):27—30。
[6]廖丽嵘。基于VB6.0有安全认证的Email客户端软件[J]。中山大学学报论丛,2004,24(3):259—261。
[7] Learning Java。Niemeyer, Patrick., Knudsen, Jonathan。O’Reilly, 2000。
[8] Java program design。Cohoon, James P.,Davidson, Jack W。McGraw-Hill Higher Education, 2004。
[9] Thinking in Java。Eckel, Bruce。Prentice Hall, c2000。
[10] Java高级程序设计。王路群主编。中国水利水电出版社, 2006 。
[11] Java课程设计。黄明, 梁旭, 周绍斌编著。电子工业出版社, 2006。
[12] Java开发与应用教程。王吴迪, 赵枫朝等编著。电子工业出版社, 2006。
[13] Java程序设计大学教程。刘艺等编著。机械工业出版社, 2006。
[14]杨宁。使用Java Mail API实现电子邮件客户端[J]。晋东南师范专科学校学报,2004,21(2):38—40。
[15] Java数据库高级编程宝典。陈天河编著。电子工业出版社, 2005。
[16] Java语言程序设计实训。赵海廷主编。武汉大学出版社, 2005。
[17] 网络编程技术及应用。谭献海等编著。清华大学出版社, 2006。

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号 毕业设计全套资源(点击下载)
本项目源码 基于Java+Javamail的邮件收发系统设计与实现(源码+文档)_java_Javamail_邮件收发系统.zip

java毕业设计——基于Java+Javamail的邮件收发系统设计与实现(毕业论文+程序源码)——邮件收发系统相关推荐

  1. java毕业设计——基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码)——愤怒的小鸟游戏

    基于java+Java awt+swing的愤怒的小鸟游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Java awt+swing的愤怒的小鸟游戏设计与实现,文章末尾附有本毕 ...

  2. java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站

    基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Spring+JSP的宠物网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  3. 【java毕业设计】基于java+BS的QQ屏幕截图工具设计与实现(毕业论文+程序源码)——屏幕截图工具

    基于java+BS的QQ屏幕截图工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+BS的QQ屏幕截图工具设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: ...

  4. 【java毕业设计】基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码)——超级玛丽游戏

    基于java+GUL的超级玛丽游戏GUL设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+GUL的超级玛丽游戏GUL设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章 ...

  5. 【java毕业设计】基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码)——出租车计价器

    基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Tomcat +Swing的出租车计价器设计与实现,文章末尾附有本毕业设计的 ...

  6. java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调试部署+系统+数据库+lw java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调 ...

  7. java毕业设计——基于Java+sqlserver的通用安全模块设计与实现(毕业论文+程序源码)——安全模块

    基于Java+sqlserver的通用安全模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+sqlserver的通用安全模块设计与实现,文章末尾附有本毕业设计的论文和源码下载地 ...

  8. 【java毕业设计】基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码)——连连看游戏

    基于java+swing+GUI的连连看游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+GUI的连连看游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  9. 【java毕业设计】基于java+swing的模拟写字板设计与实现(毕业论文+程序源码)——模拟写字板

    基于java+swing的模拟写字板设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing的模拟写字板设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报 ...

  10. 【java毕业设计】基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码)——威客网站

    基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+tomcat+jsp的威客网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

最新文章

  1. leetcode-452 用最少数量的箭引爆气球
  2. android 设颜色透明值
  3. vagrant --- vagrant部署环境
  4. hive中文字符乱码 解决方法【转】
  5. ajax跨域请求的问题
  6. asynchttpclient 超时_dnf这才是混子的毕业套装,却发现超时空漩涡不买账!
  7. 1059. C语言竞赛(20)
  8. 【笔记】通过 js——实现 各种跨域
  9. 如何优雅的统计代码耗时,快速知道你的程序慢在哪里!
  10. Linux GCC GDB 第一节
  11. Android实现圆角和圆形
  12. IOS:APP三种状态下收到推送后的跳转操作
  13. 非线性系统离散线性化方法(一)
  14. python入门汇总
  15. 黑苹果 U盘刻录工具Transmac与Etcher使用
  16. html怎样使字数占相同位,《古对今》教案
  17. gyp ERR! stack Error: EACCES: permission denied,解决
  18. java 加权平均_SPSS用加权平均值计算百分位数
  19. git add提示LF will be replaced by CRLF
  20. WPF编程宝典--控件

热门文章

  1. 机房收费系统——软件需求说明书
  2. 广东金融学院计算机专业学费,广东金融学院学费、住宿费收费标准
  3. BootStrap4内容系列之图像排版
  4. Android Camera曝光
  5. MATLAB矩阵生成函数和基本运算
  6. 【Revit二次开发】链接模型坐标系/族坐标系与模型坐标系转换
  7. 小米“铁大”机器人大秀架子鼓,网友:有节奏没灵魂
  8. 稳重商务风格教师求职简历免费word模板
  9. Jetson-Nano系统克隆
  10. MATLAB中abs的作用