首页 > 编程语言 >【Java邮件开发】4.JavaMail API的简单介绍和jar包准备

【Java邮件开发】4.JavaMail API的简单介绍和jar包准备

时间:2023-03-19 11:01:19浏览次数:44  
标签:Java jar API JavaMail JAF 邮件 开发包


1.前言

我们之前通过使用命令行手工敲SMTP和POP3的指令,进行了邮件收发。


我们接下来使用Java来实现邮件的收发。



如果我们不依赖Java的邮件API,而是使用原生模拟SMTP和POP3指令去收发邮件的话,


我们可以选择的技术就是Socket网络编程,连接上远程的邮件服务器,然后按照邮件协议与


邮件服务器进行交互,这里要涉及到很多细节问题,而且,想要自己编程实现复杂的MIME


格式的邮件,是一件非常困难和麻烦的事。



所以,Sun公司提供了一个专门用来收发邮件的API。即是“JavaMail”。



2.JavaMail介绍

JavaMail是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接受功能的一套


标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP。



开发人员使用JavaMail API编写邮件处理软件时,无需考虑邮件协议的底层实施细节,只要


调用JavaMail开发包中相应的API类就可以了。



JavaMail也提供了能够创建各种复杂MIME格式的邮件内容的相关API。




3.JavaMail的体系结构与API分类

JavaMail的API按其功能划分通常可以分为如下三大类:


(1)创建和解析邮件内容的API:Message类是创建和解析邮件的核心API,它的实例对象


代表一封电子邮件。



(2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象实现了某个邮件


发送协议的邮件发送对象,例如SMTP协议。



(3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件


接受协议的和邮件接收对象,例如POP3协议。



(4)Session类


    Session类用于定义整个应用服务所需的环境信息,以及收集客户端与邮件服务器建立网络连接


的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送协议和接受协议等。Session对象根


据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息


支持。



4.下载JavaMail的开发包

我们在网上可以下载JavaMail的开发包,我们下载的版本是javamail-1.4.7。


下载下来之后,是一个压缩文件,我们解压之后,可以看到里面有demo实例文件夹、


docs开发文档文件夹、以及核心jar包lib文件夹和mail.jar以及其他若干文件:


【Java邮件开发】4.JavaMail API的简单介绍和jar包准备_javamail



看一下lib文件夹中的jar:


【Java邮件开发】4.JavaMail API的简单介绍和jar包准备_Message_02


其中mailapi.jar是核心的jar包,它提供的邮件的发送与接收的总框架和接口,是邮件发送API


与接收的龙骨。邮件发送的实现需要引入smtp.jar,邮件接收的实现需要引入pop3.jar、imap.jar


或gimap.jar。而dsn.jar是发邮件用到的jar包,用来解析dsn。



mail.jar中的内容包含了lib中的所有jar包的功能。提供lib的原因是因为有些开发人员只需要


其中的一些功能,可以根据需要选择引入。



5.JAF简介

在我们生成一封邮件的时候,生成邮件API的内部,又调用了其他API。JavaMail内部调用了一个


第三方Jar包,叫JAF。



JAF(JavaBeans Activation Framework)即JavaBeans激活框架,是一个专用的数据处理框架,它


用于封装数据,并为应用程序提供访问和操作数据的接口。



JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过


JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:


(1)访问数据源中的数据


(2)获知数据源的数据类型


(3)获知可对数据进行的各种操作


(4)用户对象数据执行某种操作时,自动创建执行该操作的软件部件的实例对象。



JavaMail的API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成


MIME消息中的消息体和消息类型。



6.下载JAF的开发包

既然我们的JavaMail需要引用JAF的API,所以我们这里也需要下载JAF。


我们在网上下载JAF的开发包,我们这里下载的是JAF1.1的开发包。解压之后可以获得相关的文档


和jar包:


【Java邮件开发】4.JavaMail API的简单介绍和jar包准备_JAF_03


提示:如果使用JDK6以上的编译环境,则不需要单独下载JAF开发包。


我们的API简单介绍和环境准备都已经完成,下一步我们要着手进行开发了。

标签:Java,jar,API,JavaMail,JAF,邮件,开发包
From: https://blog.51cto.com/u_16012040/6131019

相关文章

  • 【Java邮件开发】3.邮件协议总结与邮件服务器的工作原理
    我们来对邮件协议进行总结,并探讨邮件服务器的工作原理一、邮件协议剖析1.指令过程描述记得上一篇总结,我们手动敲指令发邮件的时候,登录smtp服务器的......
  • java8新特性-引用流-reduce
    reduce操作用于对数据进行聚合,比如求和等。一、reduce(BinaryOperatoraccumulator) 例子:List<User>users=newArrayList<>();users.add(newUser("张三",30));u......
  • 【JavaScript】DOM结构介绍和方法预览
    DOM1.DOM介绍DOM是DocumentObjectModel文档对象模型的缩写。根据W3CDOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标......
  • Java: The number of bits of an integer is solved
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:1-100累加值但要求跳过所有包含有3的数*公用类库公共所需要用的操作函数或方法**历史版本:JDK......
  • Java中的finally一定会被执行吗?
    肯定不是。首先,如果程序连try块都执行不到,那么finally块自然就不会执行到了。有两个场景:在执行try块之前直接return在执行try块之前制造一个错误只要进入try块,不管......
  • Java Web中端口被占的问题
    使用win+r打开命令行,输入下列代码查询被占用的端口netstat-ano|findstr8080 发现该端口被PID(进程ID)为20792的进程占用。打开任务管理器,点击详情信息,找到并结束该......
  • Java synchronized的实现原理
    通常在多线程执行的过程中,我们需要考虑一些线程安全的问题,而线程安全问题中最常用的解决策略之一就是“锁”。加锁的本质,就是为了解决在多线程场景中对于共享数据访问的......
  • java学习日记20230317-多态
    多态方法和对象爱过你具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承的基础上;方法的重载体现多态方法的重写体现多态对象的多态一个对象的编译类型和......
  • java学习第一天
    java学习第一天第一个代码helloworld用cmd指令编译和运行Java文件Javac加Java文件名,编译javac编译文件会生成class文件Java运行class文件(无后缀)java程序运行机......
  • jlink打包javaFX应用和引用第三方库处理
    操作环境说明:操作系统:windows11(linux也可以参考本文操作)jdk版本:openjdk-17+35(理论上jdk9之后都可以按本文操作,具体是否可行,未验证)javaFX版本:javafx-sdk-17.0.2本......