目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 选题及意义 1
1.2 邮箱发展现状 1
1.2.1开源邮件系统 2
1.2.2国外商业邮件系统 2
1.2.3国内商业邮件系统 2
1.3研究内容 4
第2章 相关技术的理论概述 5
2.1 JSP+Servlet技术优势 5
2.2Mysql数据库的介绍 6
2.3 tomcat服务器介绍 6
2.4 ajax和json 7
2.5 spring+springmvc+mybatis框架的优势分析 8
2.6 B/S架构 9
第3章 需求分析与概要设计 10
3.1 需求分析 10
3.2 概要设计 10
3.2.1 邮箱客户端基本功能 11
3.2.2 电子邮件传输过程 11
3.2.3 邮箱客户端设计概要 12
第4章 邮箱客户端的设计和实现 14
4.1 详细设计 14
4.1.1 JDK的安装 14
4.1.2 环境变量配置 17
4.1.3 Eclipse Mars的安装配置 20
4.1.4 详细设计说明 24
4.2 安装程序的设计和制作 46
4.2.1 应用程序的设计和制作 46
4.2.2 安装应用程序 50
结 论 56
致 谢 57
参考文献 58
第3章 需求分析与概要设计
3.1 需求分析
实时通信的电话有两个严重缺点:第一,电话通信的主叫和被叫双方必须同时在场;第二,一些不是十分紧迫的电话也常常不必要地打断人们的工作或休息。
电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。电子邮件将邮件发送到ISP的邮件服务器,并放在其中的收信人邮箱(mail box)中,收信人可随时上网到ISP的邮件服务器进行读取。上述的性质相当于利用因特网为用户建立了存放邮件的信箱,因此e-mail有时也称为“电子信箱”。电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。据有的公司报道,使用电子邮件后可提高劳动生产率30%以上。现在电子邮件不仅可传递文字信息,而且还可附上声音和图像。
本设计是邮箱客户端的设计与实现,是一个实现电子邮件收、发功能的应用程序,可直接安装于PC机上执行,无需进行任何配置,只要在相应位置输入用户名和密码,即可享受电子通信的便捷,功能与OutLook Express、FoxMail等专业邮箱客户端相仿。之所以使用Java语言开发,是因为其跨平台性及面向对象设计等优点,便于开发及使用。
3.2 概要设计
电子邮件的主要组成构件如图3-1所示:
图3-1 电子邮件主要组成构件
用户代理就是用户与电子邮件系统的接口,大多情况下就是在用户PC机中运行的程序,也就是本设计的邮箱客户端。
3.2.1 邮箱客户端基本功能
(1) 撰写,给用户提供很方便地编辑信件的环境。例如,应让用户能共创建便于使用的通讯录(有常用的人名和地址)。回信时不仅能方便地从来信中提取出对方地址,并自动地将此地址写入到邮件中合适的位置,而且还能方便地对来信提出的问题进行答复(系统自动将来信复制一份在用户撰写回信的窗口中,因而用户不需要再输入来信中的问题)
(2)显示,能方便地在计算机屏幕上显示出来信(包括来信附上的声音和图像)。
(3)处理,处理包括发送邮件和接收邮件。收信人应能根据情况按不同方式对来信进行处理。例如,阅读后删除、存盘、打印、转发等,以及自建目录对来信进行分类保存。有时还可在读取信件之前先查看一下邮件的发信人和长度,对于不愿收的信件可直接在邮箱中删除。
3.2.2 电子邮件传输过程
邮件服务器是电子邮件系统的核心构件,因特网上所有的ISP都有邮件服务器。邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户服务器方式工作。邮件服务器需要使用两个不同的协议。一个协议用于发送邮件,即SMTP协议,而另一个协议用于接收邮件,即邮局协议POP(Post Office Protocol)。
下面是一封电子邮件的发送和接收工程(结合图5-1)。
(1)发信人调用用户代理编辑要发送的邮件,用户代理用SMTP将邮件传送给发送端服务器;
(2)发送端邮件服务器把邮件收入邮件缓存队列中,等待发送;
(3)运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立;
(4)当TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器进程发送邮件,如果有多个邮件在邮件缓存中,则SMTP客户一一把它们发送到远程的SMTP服务器,当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接;
(5)运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取;
(6)收信人在打算收信时,调用用户代理,使用POP3 (或IMAP)协议把自己的邮件从接收端邮件服务器的用户邮件箱中取回(如果邮箱中有来信的话)。
package com.service.admin;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import com.dao.AdminDao;
import com.po.Auser;
@Service("adminService")
@Transactional
public class AdminServiceImpl implements AdminService{
@Autowired
private AdminDao adminDao;
@Override
public String login(Auser auser, Model model, HttpSession session) {
if(adminDao.login(auser) != null && adminDao.login(auser).size() > 0) {
session.setAttribute("auser", auser);
return "admin/main";
}
model.addAttribute("msg", "用户名或密码错误;或被锁定!");
return "admin/login";
}
}