多媒体网络通信技术实验报告.doc

上传人:自*** 文档编号:124529810 上传时间:2020-03-12 格式:DOC 页数:32 大小:425KB
返回 下载 相关 举报
多媒体网络通信技术实验报告.doc_第1页
第1页 / 共32页
多媒体网络通信技术实验报告.doc_第2页
第2页 / 共32页
多媒体网络通信技术实验报告.doc_第3页
第3页 / 共32页
多媒体网络通信技术实验报告.doc_第4页
第4页 / 共32页
多媒体网络通信技术实验报告.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《多媒体网络通信技术实验报告.doc》由会员分享,可在线阅读,更多相关《多媒体网络通信技术实验报告.doc(32页珍藏版)》请在金锄头文库上搜索。

1、多媒体网络通信邮件接收与发送实 验 报 告 学 院:计算机与电子信息学院班级名称:学生姓名:空白小龙学 号:指导教师:时 间:2011年1月一、实验题目:编写一个邮件客户端和邮件接收端,能够接收和发送邮件。二、实验过程:本次实验通过使用JavaMail以及Java的图形化界面来完成邮件接收与发送的功能。JavaMail是提供给开发者处理电子邮件相关的编程接口,它是Sun发布的用来处理Email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook或者Foxmail的应用程序。虽然JavaMail是Sun的API之一,但它目前还没

2、有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。所以在此次实验中,我在项目中添加了activation.jar和mail.jar这两个jar包。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。下面简要介绍下我的设计思路与实现过程并简单地注释下代码。我的项目构造如下图:主要设计思

3、想是登录验证发送邮件或者接收邮件,通过校验用户输入的邮箱账号和密码来进行验证,输入不正确的话就弹出提示框给出错误提示并可继续重新输入,如果正确的话就进入发送邮件的界面,此时默认的发件人就是用户输入的账号,与此同时把用户在登录模块输入的密码也存起来,作为以后发送邮件和接收邮件的密码。成功登录之后,即进入了发送邮件的界面中,发件人已经默认设置为用户登录时输入的账号了,其他的比如说:收件人、邮件主题、内容、附件均可由用户输入与选择,可支持多附件传输。发送邮件成功后会弹出对话框提示邮件已经成功发送。在发送邮件的界面上还有一个按钮是“收信”按钮,可切换到接收邮件界面。进入接收邮件界面后,就默认接收第一封

4、邮件了,在界面上分别显示了邮箱中一共有几封邮件;邮件的主题、发件人、发送邮件的时间、邮件内容、邮件附件(默认保存在C盘根目录中);并可通过“上一封”和“下一封”来查看其他邮件;在界面上还有一个“写信”按钮,用于切换到发送邮件界面。大概的功能设计就是这样了。为了更好的体现面向对象的设计思想,我把邮件抽象成了一个Mail类(mail包),在接收和发送邮件的工程中很好的使用到了这个类,Mail类(自定义的邮件类)主要包含了发送者邮箱用户名userName、发送者邮箱密码password、发送邮件服务器hostName、发送邮件服务器端口port、邮件接收者toAddress、邮件主题subject、

5、邮件内容content、邮件发送者fromAddress、附件路径列表fileList、附件保存路径attachPath、邮件发送时间time、邮件数量number这些成员变量,并添加了相应的set和get方法。另外Check类(check包)用于检测用户输入的邮箱账号和密码是否正确,正确则返回true,否则返回false。recive包中的ReciveMyMail类为接收邮件类;send包中的SendMyMail类为发送邮件类,而MyAuthenticator类继承了Authenticator类用于记录用户名和密码。gui包中包含三个图形化界面的类,分别为:Login类(邮件登录界面)、Se

6、adMail类(邮件发送界面)、ReciveMail类(邮件接收界面)。三、实验代码:mail包中的Mail.javapackage mail;(import略)/* * 自定义的邮件类 * * author 空白小龙 * version 1.0.0,2010-10-28 */public class Mail / 发送者邮箱用户名public static String userName;/ 发送者邮箱密码public static String password;/ 发送邮件服务器private String hostName;/ 发送邮件服务器端口private int port;/ 邮

7、件接收者private String toAddress;/ 邮件主题private String subject;/ 邮件内容private String content;/ 邮件发送者private String fromAddress;/ 附件路径列表private List fileList = new ArrayList();/ 附件保存路径private String attachPath;/ 邮件发送时间private String time;/ 邮件数量private int number;/ get方法和set方法略check包中的Check.javapackage chec

8、k;(import略)/* * 检测邮箱账号和密码是否正确 * * author空白小龙 * version 1.0.0,2010-10-28 */public class Check /* * 验证登录是否成功,成功返回true,否则返回false * * param mail * return true or false */public boolean MyCheck(Mail mail) try / 设置JavaMail属性Properties props = new Properties();/ 设置邮件服务器端口props.put(mail.smtp.port, mail.getP

9、ort();/ SMTP邮件服务器IP地址或主机名props.put(mail.smtp.host, mail.getHostName();props.put(mail.smtp.auth, true);/ 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)MyAuthenticator auth = new MyAuthenticator(mail.getUserName(), mail.getPassword();/ 根据已配置的JavaMail属性创建Session实例Session mailSession = Session.getInstance(props,

10、(Authenticator) auth);/ 创建Transport对象Transport tran = mailSession.getTransport(smtp);/ 连接邮件服务器try tran.connect(mail.getHostName(), mail.getUserName(), mail.getPassword(); catch (javax.mail.AuthenticationFailedException e) return false;tran.close(); catch (AddressException e) catch (MessagingExceptio

11、n e) return true;recive包中的ReciveMyMail.javapackage recive;(import略)/* * 接收邮件类 * * author空白小龙 * version 1.0.0,2010-10-28 */public class ReciveMyMail / Mail实例化对象static Mail mail;/ 附件路径列表static List fileList = new ArrayList();/ 构造方法public ReciveMyMail() / 重写构造方法SuppressWarnings(static-access)public Rec

12、iveMyMail(Mail mail) this.mail = mail;/ 接收邮件的方法public Mail reveiveMail(int num) try Properties props = new Properties();Session session = Session.getDefaultInstance(props, null);Store store = session.getStore(pop3);store.connect(mail.getHostName(), mail.getUserName(), mail.getPassword();Folder folde

13、r = store.getFolder(INBOX);folder.open(Folder.READ_ONLY);Message message = folder.getMessages();mail.setNumber(message.length);if (message.length 0) fileList.clear();handleMultipart(messagenum); else return null;if (folder != null) folder.close(true);if (store != null) store.close(); catch (NoSuchPr

14、oviderException e) e.printStackTrace(); catch (MessagingException e) e.printStackTrace(); catch (Exception e) e.printStackTrace();return mail;private void handleMultipart(Message msg) throws Exception handle(msg);String disposition;Multipart mp = (Multipart) msg.getContent();int mpCount = mp.getCount();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号