java大作业--邮件系统

一、实现邮箱的登陆功能

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

用户信息用mysql存储。

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

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

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

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

二 获取邮件列表

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

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

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

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

三 邮件列表的更新

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

上一篇:[CF191C] Fools and Roads - LCA,树上差分


下一篇:mysql5.6修改完my.ini字符集失效问题