2022年黄凡语言邮件发送软件设计方案 .docx

上传人:H****o 文档编号:63362133 上传时间:2022-11-24 格式:DOCX 页数:13 大小:163.58KB
返回 下载 相关 举报
2022年黄凡语言邮件发送软件设计方案 .docx_第1页
第1页 / 共13页
2022年黄凡语言邮件发送软件设计方案 .docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年黄凡语言邮件发送软件设计方案 .docx》由会员分享,可在线阅读,更多相关《2022年黄凡语言邮件发送软件设计方案 .docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品_精品资料_基于 JAVA语言邮件发送软件设黄凡,物理与电子信息学院摘 要: 随着互联网技术及网络办公化的进展,电子邮件成为人们主要的通信方式之一.基于 Java Mail 的邮件收发系统就是利用 JavaMail 开发包的高级应用和 E-Mail 的相关协议开发出功能相对简洁,有用、便利、快捷的邮件收发系统.主要用于帮忙用户将邮件发送给SMTP 服务器和从 POP3 邮件服务器读取用户的电子邮件.本文就是结合SMTP 以及 POP3 协议的实现原理、相关 JavaMail API 帮忙文档以及相关参考书,实现了一个工作在PC 下的邮箱客户端程序.The design of softwar

2、e based on JAVA language to sendmailHuang Fan, College of Physics and Electronic InformationAbstract: Abstract: with the development of Internet technology and network office, e-mail has become one of main communication mode. The JavaMail mail systemusingadvanced E-MailapplicationandJavaMaildevelopm

3、ent kitsrelevant agreementsto develop relatively simple function based on e-mail system, practical, convenient, fast. Mainly used to help users to send a message to a SMTP server and the server to read from the POP3 mail user email. This paper is the combination of SMTP and POP3 protocol implementat

4、ion principle,related JavaMail API help documentation and reference books, the realization of a work in PC e-mail client program.Keywords: SMTP protocol. POP3 protocol. JavaMail API关键词: SMTP 协议. POP3协议. Java Mail API1 引言电子邮件 electronic mail ,简称 E-mail 又称电子信箱、电子邮政,它是一种用电子手段供应信息交换的通信方式.也是全球多种网络上使用最普遍的

5、一项服务.这种非交互式的通信,加速了信息的沟通及数据传送,它是一个简易、快速的方法.进入国际互连网的用户可以便利的使用电子邮件,而且不用任何纸张,就可以便利的写、寄、读、转发信件,而且它不论的球的任何区域,只要他在网内就可以进行转发,而不受任何时间的限制.利用电子邮件仍可以实现文件的传输、电子杂志的订阅,进行学术争论,举办电子会议或者查询信息.本文使用 Eclipse 作为开发工具,结合 SMTP、POP3 等协议,开发出一个电子邮件发送端应用程序.2JavaMail API与电子邮件收发协议2.1 JavaMail API的简介1) JavaMail 支持的协议类型:可编辑资料 - - -

6、欢迎下载精品_精品资料_简洁邮件传输协议 SMTP:Simple MailTransfer Protocol 定义了应用程序发送电子邮件的规范,它是通过TCP/IP 协议,供应一种牢靠且有效电子邮件传输的协议,实现客户端与服务器端的连接与通信,在实际的邮件发送过程中,基于 STMP 规章的邮件发送程序与局域网或互联网中的电子邮件服务器进行数据信息交换,将用户的电子邮件数据文件发送至邮件服务器中.此外在邮件接受程序的设计中,JavaMail 仍支持 POP3 协议邮局协劝和IMAP 协议 Internet 邮件拜访协议 .2) JavaMail API 介绍:JavaMail API 的开发是

7、SUN 为 Java开发者供应公用 API 框架的连续努力的良好例证,提倡公用框架,反对受限于供应商的解决方案,充分预示着一个日益开放的开发环境的建立. JavaMail API 针对电子邮件的封装、分发和接受等均定义了相应的对象,这些对象中定义方法在执行过程中依靠于详细的邮件传 输协议,以及网络系统中邮件服务器支持的邮件治理协议类型.一般情形下,在 Eclipse 中,电子邮件程序的编写是主要是利用Java jdk1.7 扩展包 JavaMailAPI 等及相关的 SMTP 等通信协议来实现的.随着现代软件业的进展, Java 供应了便利、简易、与服务器无关且稳固的电子邮件处理组件,使我们可

8、以在程序开发语言中调用这些组件,利用很简洁的语言实现功能强大的程序. JavaMail 便是一个很好的电子邮件程序开发扩展组件.JavaMail API 是读取、撰写、发送电子信息的可选包.我们可用它来建立如 Eudora、Foxmail 、MS Outlook Express 一般的邮件用户代理程序 Mail User Agent,简称 MUA ).而不是像 sendmail或者其它的邮件传输代理 Mail Transfer Agent,简称 MTA )程序那样可以传送、递送、转发邮件.从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依靠着MTA 处理邮件的递送.

9、JavaMail 核心类: Session、Message、Address、Authenticator、Transport、Store和 Folder.Session类:定义了基本的邮件会话.就像Http 会话那样,进行收发邮件的工作都是基于这个会话的. Session对象利用了 java.util.Properties 对象获得了邮件服务器、用户名、密码信息和整个应用程序都要使用到的共享信息.Message类:当建立了 Session对象后,便可以被发送的构造信息体了.在这里 SUN 供应了 Message类型来帮忙开发者完成这项工作.由于Message是一个抽象类,大多数情形下,使用jav

10、ax.mail.internet.MimeMessage 这个子类,该类是使用 MIME类型、 MIME信息头的邮箱信息.信息头只能使用US-ASCII 字符,而非 ASCII 字符将通过编码转换为ASCII 的方式使用.Address 类:像 Message 一样, Address 类也是一个抽象类,所以我们将使用 javax.mail.internet.InternetAddress这个子类.Authenticator 类:像 类那样, JavaMail API 通过使用授权者类Authenticator)以用户名、密码的方式拜访那些受到爱护的资源,在这里“资源”就是指邮件服务器.在jav

11、ax.mail 包中可以找到这个JavaMail 的授权者类Authenticator).Transport 类:在发送信息时, Transport 类将被用到.这个类实现了发送信息的协议 来发送消息: Transport.sendmessage.可编辑资料 - - - 欢迎下载精品_精品资料_Store 和 Folder 类:接收邮件和发送邮件很类似都要用到Session.但是在获得 Session后,需要从 Session中猎取特定类型的 Store,然后连接到 Store, 这里的 Store 代表了储备邮件的邮件服务器.在连接Store 的过程中,极有可能需要用到用户名、密码或者 Au

12、thenticator.2.2 SMTP协议简介及通讯模型SMTP 是简洁邮件传输协议,它是一组用于由源的址到目的的址传送邮件的规章,由它来掌握信件的中转方式.SMTP 协议属于 TCPIP 协议族,它帮忙每台运算机在发送或中转信件时找到下一个目的的.通过SMTP 协议所指定的服务器,我们就可以把Email 寄到收信人的服务器上了,整个过程只要几分钟.SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器,用来发送或中转你发出的电子邮件.SMTP 是一种供应牢靠且有效电子邮件传输的协议.SMTP 是建模在 FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并供应来信有关的通知

13、.SMTP 独立于特定的传输子系统,而且仅要求一条可以保证传送数据单元次序的通道且只需要牢靠有序的数据流信道支持.SMTP 重要特性之一是其能跨过网络传输邮件.通常,一个网络可以由公用互联网上TCP 可相互拜访的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互拜访的主机,及其它LAN/WAN 中的主机利用非 TCP 传输层协议组成.使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输.在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间 中继器或网关主机.域名服务系统 DNS)的邮件交换服务器可以用来识别出传输邮件

14、的下一跳 IP 的址. SMTP 在传输文件过程中使用 25 号端口,可大致用下面的图 2.1 来表示:用户文件系文件系SMTP 命令发送 SMTP邮件内容接收 SMTP应答图 2.1 SMTP 通信模型可编辑资料 - - - 欢迎下载精品_精品资料_2.3 POP3协议简介POP3,全名为“ Post Office Protocol - Version 3”,即“邮局协议版本3”.是 TCP/IP 协议族中的一员,协议默认端口是110 ,适用的构架结构是C/S,由 RFC 1939 定义.它是规定个人运算机如何连接到互联网上的邮件服务器进行收发邮件的协议.它是因特网电子邮件的第一个离线协议标

15、准,POP3 协议答应用户从服务器上把邮件储备到本的主机即自己的运算机)上,同时依据客户端的操作删除或储存在邮件服务器上的邮件,而POP3 服务器就是遵循POP3 协议的接收邮件服务器,用来接收电子邮件的.本协议主要用于支持使用客户端远程治理在服务器上的电子邮件.POP 协议支持“离线”邮件处理.其详细过程是:邮件发送到服务器上, 电子邮件客户端调用邮件客户机程序以连接服务器,并下载全部未阅读的电子邮件.这种离线拜访模式是一种储备转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是 PC 机或 MAC .一旦邮件发送到PC 机或 MAC上,邮件服务器上的邮件将会被删除.但目前的POP3 邮

16、件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议.POP3 协议有三种状态:认正状态,处理状态,更新状态.命令的执行可以转变协议的状态,而对于详细的某命令,它只能在详细的某状态下使用.客户 机与服务器刚与服务器建立连接时,它的状态为认证状态.一旦客户机供应了 自己身份并被胜利的确认,即由认可状态转入处理状态.在完成相应的操作后 客户机发出QUIT 命令,就进入更新状态,更新之后又重返认可状态.当然在认可状态下执行 QUIT 命令,可释放连接.状态间的转移如下所示:等待连接身份确认 quit 命令C |认证| |处理| |更新|S|重返认证状态.3 概要设计3.1 系统

17、的总体结构框图 类图)每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端, 而接收方构成服务器.发送方通过邮件客户程序,将编辑好的电子邮件向邮局 服务器SMTP 服务器)发送.邮局服务器识别接收者的的址,并向治理该的址的邮件服务器 检查错误,如有错误 ,提交错误报告电子邮件客户端主要由以下两个模块构成:发送邮件模块、用户登入.其功能模块如图 3.2 所示:可编辑资料 - - - 欢迎下载精品_精品资料_用发户送登入邮件电子邮件发送端程序图 3.2系统功能模块图1) 用户登入:当邮箱跟密码正确的时候才可以登入进去.2) 发送邮件模块:邮件正文写好后然后点发送.3.3 类的功能设计3.

18、3.1 用户登入类关键变量:private JPanel mailPanel = new JPanel. private JPanel passwordPanel=new JPanel. private JPanel mailLoginPane.l privateJComboBox jComBox.private JLabel maitLabel.private JLabel mailPasswordLable.private JTextField mailText.private JPasswordField passwordTex.t 关键方法:String mail=mailText.g

19、etText .String password=passwordText.getText.3.3.2 邮件发送类关键变量:private JLabel subjec.t/邮件主题private JLabel mainConten.t/邮件正文private JLabel address./目的邮箱 private JTextField subjectText.private JTextArea contentText.private JTextArea addText.private JPanel subjectPane.l private JPanel contentPane.l priva

20、te JPanel addressPan.el private JButton sendButton.可编辑资料 - - - 欢迎下载精品_精品资料_private JButton sendSucces.s private JButton sendAgain.关键方法:public static void sendString mail,String password,String receivers, String subject, String mailContent, String mimetypesendreceivers, subject, mailContent, mimetype

21、./* 发送邮件* param receivers收件人* param subject标题* param mailContent邮件内容* param mimetype内容类型 默认为 text/plain, 假如要发送 HTML 内容, 应设置为 text/html*/public static void sendString receiver, String subject, String mailContent, String mimetype sendnew Stringreceiver, subject, mailContent, mimetype./* 发送邮件* param re

22、ceivers收件人* param subject标题* param mailContent邮件内容* param mimetype内容类型 默认为 text/plain, 假如要发送 HTML 内容, 应设置为 text/html*/public static void sendString receivers, String subject, String mailContent, String mimetype sendreceivers, subject, mailContent, null, mimetype./* 发送邮件* param receivers收件人* param su

23、bject标题* param mailContent邮件内容* param attachements附件* param mimetype内容类型 默认为 text/plain, 假如要发送 HTML 内容, 应设置为 text/html*/可编辑资料 - - - 欢迎下载精品_精品资料_3.4 邮件发送流程图邮件发送流程图如图 3.4,发送邮件时会对邮件以及账号进行处理和验证.当账号跟密码都符合的时候,然后点击发送,邮件就发出去了.假如账号跟密 码不正确的话,邮件就发送失败.邮箱密码发送密码正确密码不正确发送胜利发送失败可编辑资料 - - - 欢迎下载精品_精品资料_4 功能模块的实现图 3.

24、4邮件发送流程图可编辑资料 - - - 欢迎下载精品_精品资料_4.1 程序主界面的实现本次设计中 ,主要用到对话框 Java图形界面. Java图形界面是实现应用程序人机交互的重要组成部分.它不但可以实现数据流的输入和输出,而且也可以移动和关闭对话框.主界面有对应的按钮,便利用户使用.关键代码如下:第一构造客户端面板 ,定义以下几个需要的界面和按钮maitLabel=new JLabel邮箱.mailPasswordLable=new JLabel密码 .subject=new JLabel邮件主题 .mainContent=new JLabel邮件正文 .address=new JLabe

25、l目的邮箱 . sendButton=new JButton发送 .其次将其支配到客户端面板上相应位置container.addmailLoginPanel,BorderLayout.NORTH.container.addcontentPanel,BorderLayout.CENTER. container.addaddressPanel,BorderLayout.SOUTH.可编辑资料 - - - 欢迎下载精品_精品资料_图 4.1程序主界面实现图4.2 邮件发送的实现第一进入主界面,在主界面输入邮箱、密码、邮件主题、邮件正文和目的邮箱,然后点发送,假如邮箱账号跟密码都正确的话就可以发送邮件

26、,否就就发送不胜利.1)猎取收件人账号 .String password=passwordText.getText./ SMTP服务器需要验证: props.putmail.smtp.host, ./Smtp props.putmail.smtp.auth, true.2猎取账号设置界面中用户输入的账号和密码传入服务器.关键代码:/ 传入用户名和口令:Session session = Session.getDefaultInstanceprops, new Authenticator protected PasswordAuthentication getPasswordAuthentica

27、tion return new PasswordAuthentication705048972,880722.session.setDebugtrue.可编辑资料 - - - 欢迎下载精品_精品资料_3邮件发送胜利的提示关键代码:sendSuccess=new JButton发送胜利; .可编辑资料 - - - 欢迎下载精品_精品资料_sendSuccess.setBackgroundColor.red. sendSuccess.setVisiblefalse.5 程序测试5.1 主界面测试本次设计中 ,主要用到对话框 Java图形界面. Java图形界面是实现应用程序人机交互的重要组成部分.

28、它不但可以实现数据流的输入和输出,而且也可以 移动和关闭对话框.主界面有对应的按钮,便利用户使用,如下列图:可编辑资料 - - - 欢迎下载精品_精品资料_5.2 发送电子邮件程序测试图 5.1 主界面测试可编辑资料 - - - 欢迎下载精品_精品资料_在上一步已经测试了账号输入,然后再收件人的址输入框中输入 “ huangfan”.接下来在主题输入框中输入“邮件测试”,正文中输入“黄凡 0908322”,最终点击发送,当邮件发送胜利会在发送旁边返回“发送胜利”的信息.如图为测试邮件发送胜利.可编辑资料 - - - 欢迎下载精品_精品资料_图 5.2a )发送电子邮件程序测试面图 5.2b )

29、发送电子邮件程序测试面结论电子邮件在 Internet上发送和接收的原理可以很形象的用我们日常生活中邮寄包裹来形容:当要寄一个包裹时,第一要找到任何一个有这项业务的邮局,在填写完收件人姓名、的址等等之后包裹就寄出而到了收件人所在的的邮局,那么对方取包裹的时候就必需去这个邮局才能取出.同样的,当发送电子邮件时,这封邮件是由邮件发送服务器 和POP3Post Office Protocol ,邮局协议 3,使用实现注册好的邮件账号和密码进行登陆和验证. 3.验证胜利后,将之前写好的邮件通过服务器发送到目的的址.4.发送胜利,否就返回错误报告.参考文献1 谢希仁 . 运算机网络 . 第五版 M .

30、北京:电子工业出版社,2022. 12 耿祥义,张跃平 . Java高校有用教程 . 其次版 M . 北京 : 电子工业出版社, 2022. 53 王勇,代桂平 . 运算机网络课程设计 M . 北京:清华高校出版社,2022. 64 王伟 . 基于 JavaMail API 的邮件服务的开发及实现J. 现代运算机 , 2022, 1 : 73-765 美埃史尔 . Java编程思想 第 4 版.机械工业出版社 . 20226 陈海山 . 深化 Java Servlet 网络编程 M . 北京:清华高校出版社,2022. 2 7Karl Moss . Java Servlet 开发人员指南 M . 北京:清华高校出版社,20228 Liang ,Y.D .Java语言程序设计基础篇 . 机械工业出版社 , 20229 刘晓华 .熟知 Java 核心技术 . 电子工业出版社 , 202210 Bruce Eckel . Thinking in JavaM . Upper Saddle River , New Jersey, USA : Prentice Hall , 2022可编辑资料 - - - 欢迎下载

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁