将后台的邮件系统使用javaGUI编程来实现,让我们可以在桌面端直接控制邮件的收发功能。

一、实现邮箱的登陆功能

  邮件系统使用smtp协议发送邮件,使用POP3协议或者IMAP协议来收取邮件。SMTP属于推协议,POP3 ,IMAP属于拉协议。

  邮箱登陆时为了登陆进去就可以获取邮件列表,我们使用POP3协议来登陆邮箱。

  (如果使用SMTP协议登陆的话,只能验证账号,密码是否正确,不能获取邮件列表,登陆进去之后还要再次使用POP3协议来获取邮件,南辕北辙~~~)

  POP3协议并没有直接验证账号的功能,但是如果使用不正确的邮箱登录时会抛出异常,所以我们使用异常捕获来判断账号密码是否正确。

  在登陆成功后,我们直接用POP3验证的成功的账号来获取邮件列表,并显示在面板上。

二 获取邮件列表

  在登陆验证成功的时候,我们在后台从服务器上获取邮件并存储在邮件model数组中,然后再将这个数据传送到登陆界面.

  在这个过程中有一个问题,就是当一个邮箱列表很长的时候后台会花很长的时间获取邮件列表.

    解决方法:1. 最多只获取最近的30封邮件.

         2. 如果要全部获取,而且同时邮件列表又比较长的时候,我们先获取最近的30封邮件,将这个数据先传递到邮箱主界面中,然后在进入邮箱主界面之后再在后台获取剩          余的邮件.

三 邮件列表的更新

  在整个桌面端的邮件系统中,这个功能是最让我头疼的,做的过程中不知道为什么总是先邮件的内容获取不了,但是邮件的标题,发件人都是可以获取的,最后才发现由于我的邮件系统    中邮件,发件人信息的取出和邮件正文内容取出并不是在一个函数中完成的,取出邮件标题信息之后我就把文件关闭了,而在消息正文中获取的内容是对于是否获取成功没有进行判断,直接就传递回原函数,导致邮件内容为空.    

  

java 图形界面 邮件系统的更多相关文章

  1. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  2. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  3. Java图形界面GUI

    Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...

  4. java 图形界面 Socket编程

    一.使用图形界面实现客户端服务器端的通信: 上代码: 服务器端代码: package cn.MyNET; import java.io.*; import java.net.*; import jav ...

  5. Java第5次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  6. Java第05次实验提纲(Java图形界面编程)

    1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...

  7. JAVA 图形界面开发基础详解

    与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...

  8. 【转】java图形界面设计(AWT)

    [转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1.       基本的java Frame操作. Java的图形界面的类主要包括AW ...

  9. Java图形界面实战案例——实现打字母游戏

    实现打字母的游戏 这次这个案例能够说是头几次所讲的内容的一个技术汇总,主要是 运用了几大块的知识.我们先来定义一下案例的背景:在一个300*400的窗口上.有10个随机产生的字母下落,在键盘上敲击字母 ...

随机推荐

  1. 利用命令行来安装应用到android虚拟机

    1.首先将将android  sdk中的adb添加到环境变量中确保在任意目录下运行adb都可以执行 2.将命令行切换到应用安装包所在未知 3.运行:adb install 应用名称即可

  2. eclipse调试java调用matlab程序的7.17dll找不到的问题

    经过多次查找,这个问题本来很简单,在环境变量中CLASSPATH配置C:\MATLAB\R2012a\toolbox\javabuilder\jar\win64\javabuilder.jar 特别注 ...

  3. java基础知识拾遗(三)

    1.类加载 bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类. extension classloader -扩展类加载器,它负责加载JRE的扩展目 ...

  4. dll导出命名空间下的c风格函数陷阱

    1.编译阶段,如果不是重载,那么C风格的同名函数与C++风格的同名函数,就会报编译错误.error C2084: function 'int Test(void)' already has a bod ...

  5. 使用 IDEA 创建 Maven Web 项目 (二)- 搭建 WEB 项目框架

    转为 Java Web 项目 将上一节中创建的 Maven 项目调整为 WEB 项目结构,步骤如下: 在 main 目录下,添加 webapp 目录. 在 webapp 目录下,添加 WEB-INF ...

  6. MySQL5.7解压版详细安装教程,在最后一步需要随机密码

    这里为百度经验 http://jingyan.baidu.com/article/ff42efa93580c4c19e2202b6.html 然而在最后一步,回车不能够越过密码. 需要在解压的mysq ...

  7. LightOJ 1248 Dice (III)

    期望,$dp$. 设$dp[i]$表示当前已经出现过$i$个数字的期望次数.在这种状态下,如果再投一次,会出现两种可能,即出现了$i+1$个数字以及还是$i$个数字. 因此 $dp[i]=dp[i]* ...

  8. SQL Server 2016 的「動態資料遮罩 (Dynamic Data Masking)」

    一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Proce ...

  9. 用python计算lda语言模型的困惑度并作图

    转载请注明:电子科技大学EClab——落叶花开http://www.cnblogs.com/nlp-yekai/p/3816532.html 困惑度一般在自然语言处理中用来衡量训练出的语言模型的好坏. ...

  10. 【angular】angular实现简单的tab切换

    html: <div class="list-group" ng-repeat="tab in menuList"> <a href=&quo ...