java 图形界面 邮件系统
将后台的邮件系统使用javaGUI编程来实现,让我们可以在桌面端直接控制邮件的收发功能。
一、实现邮箱的登陆功能
邮件系统使用smtp协议发送邮件,使用POP3协议或者IMAP协议来收取邮件。SMTP属于推协议,POP3 ,IMAP属于拉协议。
邮箱登陆时为了登陆进去就可以获取邮件列表,我们使用POP3协议来登陆邮箱。
(如果使用SMTP协议登陆的话,只能验证账号,密码是否正确,不能获取邮件列表,登陆进去之后还要再次使用POP3协议来获取邮件,南辕北辙~~~)
POP3协议并没有直接验证账号的功能,但是如果使用不正确的邮箱登录时会抛出异常,所以我们使用异常捕获来判断账号密码是否正确。
在登陆成功后,我们直接用POP3验证的成功的账号来获取邮件列表,并显示在面板上。
二 获取邮件列表
在登陆验证成功的时候,我们在后台从服务器上获取邮件并存储在邮件model数组中,然后再将这个数据传送到登陆界面.
在这个过程中有一个问题,就是当一个邮箱列表很长的时候后台会花很长的时间获取邮件列表.
解决方法:1. 最多只获取最近的30封邮件.
2. 如果要全部获取,而且同时邮件列表又比较长的时候,我们先获取最近的30封邮件,将这个数据先传递到邮箱主界面中,然后在进入邮箱主界面之后再在后台获取剩 余的邮件.
三 邮件列表的更新
在整个桌面端的邮件系统中,这个功能是最让我头疼的,做的过程中不知道为什么总是先邮件的内容获取不了,但是邮件的标题,发件人都是可以获取的,最后才发现由于我的邮件系统 中邮件,发件人信息的取出和邮件正文内容取出并不是在一个函数中完成的,取出邮件标题信息之后我就把文件关闭了,而在消息正文中获取的内容是对于是否获取成功没有进行判断,直接就传递回原函数,导致邮件内容为空.
java 图形界面 邮件系统的更多相关文章
- Java图形界面学习---------简易登录界面
/** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...
- Java 图形界面开发--图文并茂建立学生管理系统
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...
- Java图形界面GUI
Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...
- java 图形界面 Socket编程
一.使用图形界面实现客户端服务器端的通信: 上代码: 服务器端代码: package cn.MyNET; import java.io.*; import java.net.*; import jav ...
- Java第5次实验提纲(Java图形界面编程)
1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...
- Java第05次实验提纲(Java图形界面编程)
1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...
- JAVA 图形界面开发基础详解
与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...
- 【转】java图形界面设计(AWT)
[转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1. 基本的java Frame操作. Java的图形界面的类主要包括AW ...
- Java图形界面实战案例——实现打字母游戏
实现打字母的游戏 这次这个案例能够说是头几次所讲的内容的一个技术汇总,主要是 运用了几大块的知识.我们先来定义一下案例的背景:在一个300*400的窗口上.有10个随机产生的字母下落,在键盘上敲击字母 ...
随机推荐
- computer专业术语总结
计算机专业真可谓是博大精深,光语言就有N多种,而且各种算法计数,各个领域,加之新技术的不断出现, 如果想要穷尽 计算机的知识,那绝对是不那个可能的,只能在若干领域才能取得一定的成果,但是多了解一些专业 ...
- 10161 - Ant on a Chessboard
Problem A.Ant on a Chessboard Background One day, an ant called Alice came to an M*M chessboard. She ...
- Java Tips and Best practices to avoid NullPointerException
A NullPointerException in Java application is best way to solve it and that is also key to write rob ...
- Mysql 免安装版 root@localhost第一次密码设置
方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass ...
- 【C#】Switch datatype between object and byte[]
This sample shows how to turn object to byte[], as well as turn byte[] to object. So,I can turn any ...
- Cocos2d-x 3.x事件分发机制总结
在2.x中处理事件需要用到委托代理(delegate),相信学过2.x的触摸事件的同学,都知道创建和移除的流程十分繁琐.而在3.x中由于加入了C++11的特性,而对事件的分发机制通过事件分发器Even ...
- nyoj 79 拦截导弹 (动态规划)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=79 题意即求最长单调递减子序列 #include<iostream> #inc ...
- VS插件-JSEnhancements
在Visaul Studio 2010中写js或css代码,缺少像写C#代码时的那种折叠功能,当代码比较多时,就很不方便. 今天发现,已经有VS2010扩展支持这个功能,它就是——JSEnhancem ...
- FaceBook页面加载技术
1. 技术背景 FaceBook页面加载技术 试想这样一个场景,一个经常访问的网站,每次打开它的页面都要要花费6 秒:同时另外一个网站提供了相似的服务,但响应时间只需3 秒,那么你会如何选择呢?数据表 ...
- tableviewcell 点击 设置
table?.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) //设置cell 下边线 位置 table?.se ...