一、概述
如今移动手持设备发展速度越来越快,支持功能越来越多。不少的 PC 应用被移植到手持设
备上来,这也个用户带来了相当多的方便。当然邮箱也不例外,被做到移动手持设备上来。电
子邮件是互联网最基本、但却是最重要的组成部分,通过电子邮件进行方便、快捷的信息交流,
已经逐渐成为日常生活和工作中不可或缺的行为习惯。
二、项目设计与实现
1、JavaMail 编程简介
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是 Sun 发布的用
来处理 email 的 API。它可以方便地执行一些常用的邮件传输。我们可以基于 JavaMail 开发出
类似于 Microsoft Outlook 的应用程序。
虽然 JavaMail 是 Sun 的 API 之一,但它目前还没有被加在标准的 java 开发工具包中(Java
Development Kit),这就意味着你在使用前必须另外下载 JavaMail 文件。除此以外,你还需要
有 Sun 的 JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework 的运
行很复杂,在这里简单的说就是 JavaMail 的运行必须得依赖于它的支持。在 Windows 2000 下
使用需要指定这些文件的路径,在其它的操作系统上也类似。
JavaMail 是可选包,因此如果需要使用的话你需要首先从 java.sun.com 下载。目前最新
版本是 JavaMail1.4,使用 JavaMail 的时候需要 Javabean Activation Framework 的支持,因
此你也需要下载 JAF。安装 JavaMail 只是需要把他们加入到 CLASSPATH 中去,如果你不想修改
CLASSPATH 的话,可以直接把他们的 jar 包直接 copy 到 JAVA_HOME/lib/ext 下。这样 JavaMail
就安装好了。
JavaMail 包 中 用 于 处 理 电 子 邮 件 的 核 心 类 是 :
Session,Message,Address,Authenticator,Transport,Store,Folder 等。Session 定义了一个
基本的邮件会话,它需要从 Properties 中读取类似于邮件服务器,用户名和密码等信息。
2、功能模块的实现
1、 登陆
用 户 使 用 自 己 的 邮 箱 名 和 密 码 来 登 陆 系 统 , 这 里 只 是 做 格 式 的 验 证 , 存 储 于 全 局
Application 变量中,作为发邮件者,用户还可已选择记住登陆信息,来存储本次的登陆信
息于 SharedPreferences 文件中,以方便下一次登陆。
信息通过验证则会记录主功能页面:
2、 联系人管理
使用该软件进行邮件的发送是要先设置联系人也就是收件人,点击联系人将进入联系人管
理页面
在该页面可以对联系人进行一系列的操作:
1
添加联系人:点击 menu,会出现一个功能菜单:
点击添加项:
一定要正确填写数据,才可以通过。列表会立刻刷新:
删除联系人:长按某一条要删除的信息将有删除提示:
2
点击确定该条信息将被删除。
查找联系人:中文可以通过首字母匹配查询,备注名称和邮件地址可以通过模糊查询来实
现快速的查找。
点击 menu 的说明菜单会出现该界面上功能的使用说明:
3
3、 写信
主菜单点击写信将进入写信页面
点击 Menu 将出现该写信功能的使用说明项和退出项:
点击使用说明会有该页面的详细使用说明。
添加收件人:点击页面上的添加图片进入联系人列表,在这里可以选择收件人支持群发。
4
点击确定按钮回到写信页面,发给后回出现选择的收件人:
点击右上角的红色叉号可以将对应收件人删除掉。
标题可以写也可以不写,不写将使用默认标题,那内容填否也是可选的:
点击添加附件将进入文件管理页面,选择需要传送的文件作为附件:
5
选择一个图片,将其发送。
点击确定按钮将进行文件的发送。
查看邮箱:
6
3、功能模块实现的核心代码
1、 使用 SharedPreferences 存储简单文本信息。
if(checkBox.isChecked()){
//存储
SharedPreferences shared = this.getSharedPreferences("login", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString("name", emailNo);
editor.putString("password", password);
editor.putBoolean("isJz", true);
editor.commit();
}else{
//清空
SharedPreferences shared = this.getSharedPreferences("login",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.clear();
editor.commit();
}
2、扩展Application来实现存储全局变量
public class BMSApplication extends Application {
private User user;
List
personList ;
public User getUser() {
return user;
7