全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaMail邮件简介及API概述第一篇

现如今,电子邮件在我们的生活当中扮演着越来越重要的角色,我们每个人几乎都会与其打交道(至少时不时我们都会接收到莫名其妙的垃圾邮件),在工作中,使用邮件进行交流沟通,可以使我们的工作有迹可循,也显的较为正式,这是由我们人为手工操作的,在生活中,在某网站注册了一个账户之后,该网站就会自动发送一封欢迎邮件并让我们确认是否注册,以防止恶意注册,当然,这个就不可能像我们工作中手工方式来进行操作了,Java的13种核心技术中的JavaMail为我们提供了API来对邮件进行相关的操作。

一、邮件服务器

要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。Internet上架设了大量的电子邮件服务器,例如,sina.com、qq.com、163.com等网站提供了面向公众免费的电子邮件服务器,许多公司也提供了面向内部员工的电子邮件服务器,这些电子邮件服务器彼此之间都可以发送和接收电子邮件。那邮件服务器的作用是什么呢,它可以帮我们把邮件发出去,也可以帮我们把邮件接收进来,还可以为我们提供取邮件的服务,这个类似于现实生活中的邮局,既可以接收邮件,也可以为我们取邮件提供服务,还可以帮我们发送邮件。下面的图片形象的说明了邮件服务器的功能

(1)接收用户投递的邮件;
(2)将用户投递进来的邮件转发给目标邮件服务器;
(3)接收其他邮件服务器转发来的邮件并把邮件存储到其管理的用户邮箱中;
(4)为前来读取邮件的用户提供读取服务。

邮件服务器按通讯协议可以划分为两种类型:SMTP服务器和POP3/IMAP服务器,上图中的1、2、3的功能就是由SMTP服务器完成的,而4的功能则是由POP3服务器完成的。

二、电子邮箱

每个电子邮件服务器之上都可以开设多个电子邮箱,电子邮箱也称之为E-mail地址,它类似现实生活中的通讯地址,用户可通过这个地址接收别人发来的电子邮件和向别人发送电子邮件。电子邮箱的获得需要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个帐户。邮件服务器把接收到的邮件保存到为某个帐户所分配的邮箱空间中(所以我们需要定期清理我们的邮件,否则超过了分配的空间则无法接收到新的邮件),用户通过其申请的用户名和密码登陆到邮件服务器上查收该地址已收到的电子邮件。

三、电子邮件的传输过程

电子邮件的传输过程可以用下图来表示

上图实线过程描述:

1、lisi@sina.com的邮件客户端与sina的SMTP服务器建立网络连接,并以lisi的用户名和密码进行登录后,使用SMTP协议把邮件发送给sina的SMTP服务器;

2、sina的SMTP服务器收到lisi@sina.com提交的地址邮件后,首先根据收件人的地址后缀判断接收者的邮件地址是否属于该SMTP服务器的管辖范围,如果是就直接把邮件存储到收件人的邮箱中,否则,sina的SMTP服务器向DNS服务器查询收件人的邮件地址后缀(sohu.com)所表示的域名的MX记录,从而得到sohu的SMTP服务器信息,然后与soho的SMTP服务器建立连接并采用SMTP协议把邮件发送给sohu的SMTP服务器;

3、soho的SMTP服务器收到sina的SMTP服务器发来的电子邮件后,也将根据收件人的地址判断该邮件是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人的邮箱中,否则,sohu的SMTP服务器可能继续转发这封邮件;

4、wangwu@sohu.com账号通过客户端与soho的POP3/IMAP服务器建立网络连接,并成功登录后,然后通过POP3/IMAP协议查看wangwu@sohu.com邮箱中是否有新邮件,如果有,则使用POP3或IMAP协议读取邮箱中的邮件。

虚线过程与实线过程类似,不再重复。

JavaMail API是Sun公司为方便Java开发人员在应用程序中实线邮件发送和接收功能而通过的一套标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP和MIME等。要用这套API,当然需要先下载相关jar包,最新版本1.5.6,下载地址:https://java.net/projects/javamail/pages/Home。

JavaMail API按其功能划分通常可分为如下三大类:
1、创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件;
2、发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议;
3、接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。

Session类:

Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。

以上4个类的关系如下所示:

以上内容大部分摘抄自《Java邮件开发详解》一书。下一篇JavaMail入门第二篇 创建邮件将介绍如何使用JavaMail提供的API创建邮件。


# JavaMail  # 邮件  # API  # java中javamail发送带附件的邮件实现方法  # Java基于JavaMail实现向QQ邮箱发送邮件  # java中javamail收发邮件实现方法  # Java程序中使用JavaMail发送带图片和附件的邮件  # JavaMail实现发送超文本(html)格式邮件的方法  # struts2集成javamail发邮件示例详解  # JavaWeb中使用JavaMail实现发送邮件功能实例详解  # javamail 发送邮件的实例代码分享  # JavaMail实现邮件发送的方法  # Java使用JavaMail API发送和接收邮件的代码示例  # 邮件服务器  # 电子邮件  # 邮件发送  # 客户端  # 发送邮件  # 接收邮件  # 一封  # 应用程序  # 这是  # 实现了  # 发送给  # 就会  # 生活中  # 地说  # 还可以  # 多个  # 的说  # 下载地址  # 每个人  # 是由 


相关文章: 公司网站设计制作厂家,怎么创建自己的一个网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  建站之星24小时客服电话如何获取?  网站制作免费,什么网站能看正片电影?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  实例解析Array和String方法  如何自定义建站之星模板颜色并下载新样式?  如何在阿里云服务器自主搭建网站?  宝塔新建站点报错如何解决?  如何在Ubuntu系统下快速搭建WordPress个人网站?  SQL查询语句优化的实用方法总结  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  建站主机如何选?性能与价格怎样平衡?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何在阿里云虚拟主机上快速搭建个人网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  建站之星在线客服如何快速接入解答?  建站之星价格显示格式升级,你的预算足够吗?  制作宣传网站的软件,小红书可以宣传网站吗?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何快速搭建高效服务器建站系统?  如何挑选最适合建站的高性能VPS主机?  南京网站制作费用,南京远驱官方网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  建站之星后台管理系统如何操作?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何在自有机房高效搭建专业网站?  如何在万网开始建站?分步指南解析  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何在西部数码注册域名并快速搭建网站?  Swift开发中switch语句值绑定模式  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  建站之星logo尺寸如何设置最合适?  PHP正则匹配日期和时间(时间戳转换)的实例代码  清除minerd进程的简单方法  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  建站之星安装提示数据库无法连接如何解决?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何通过二级域名建站提升品牌影响力?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何选择高效稳定的ISP建站解决方案?  实例解析angularjs的filter过滤器  如何访问已购建站主机并解决登录问题?  Swift中swift中的switch 语句  如何通过FTP空间快速搭建安全高效网站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。