
JavaMail Api简介
JavaMail API用来读取、写入和编写E-mail(电子信息)。JavaMail API提供了一个框架,通过与平台无关和与协议无关的方式,使用Java创建邮件和信息传递客户端应用程序。JavaMail API提供了包含邮件系统中定义的对象的抽象类,同时也为E-mail应用提供了接口。JavaMail API通常用于阅读和发送E-mail,需要服务提供商与在传输协议上执行的邮件服务器进行交互。
JavaMail API的概述
JavaMail API提供了一个框架,通过与平台无关和与协议无关的方式来创建邮件和消息客户端应用程序。JavaMail API提供了一组抽象类,它包含了由邮件系统组成的对象,也是E-mail应用程序的接口。它一般用于撰写、阅读和发送E-Mails(电子信息)。JavaMail API是一套用于邮件系统的API,它为发送和阅读E-mail提供服务。JavaMail提供了一个元素,用来构建一个具有接口和系统组件的消息系统的接口。JavaMail包括各种实现MIME互联网消息传递标准和RFC822的类;这些类在JavaMail类包中。
JavaMail API中使用的协议
在JavaMail API中使用了几个协议,它们是:。
- SMTP
- POP
- IMAP
- MIME
- NNTP和其他
**SMPT(简单邮件传输协议)。**它提供了传递电子邮件的机制,它是一个互联网标准,用于在IP网络上接收和发送电子邮件,使用TCP的最可接受的端口25来发送和接收电子邮件。它有安全的SSL连接。JavaMail API在com.sun.mail.smtp中拥有核心类和包,它将执行SMTP协议,与任何SMTP服务器建立连接。我们可以利用Postcast服务器、电子邮件服务器、Apache James服务器作为SMTP服务器。一旦购买了主机空间,SMTP服务器就会为我们提供托管服务。
POP(邮局协议)。它 也被称为POP3,主要是提供接收电子邮件的机制。它为每个用户定义和维护特定/单一的邮箱。POP3协议是在RFC1939中定义的。 POP3是一个标准的互联网协议,由本地电子邮件客户通过TCP/IP协议使用远程服务器的电子邮件,它监听端口110。JavaMail API中POP3协议的提供者是com.sun.mail.pop3。
IMAP(互联网消息访问协议)。它 是接收信息的最先进的协议。IMAP为每个用户提供了许多邮箱的支持;此外,邮箱可以被贡献给几个不同的用户。这个IMAP在RFC 2060中定义,它监听端口为143。JavaMail API中的IMAP协议的提供者是com.sun.mail.imap。 通过SSL的IMAP使用指定的993端口。
MIME(多用途互联网邮件扩展)。它 定义并告诉浏览器正在传输的内容,它没有邮件传输协议,只告诉实际发送的内容,例如任何附件、正在发送的邮件格式等。对于不同的文件,它们有不同的效果,它们是RFC 2047、RFC 2046、RFC 2045和RFC 822,这些格式存在并用于邮件程序本身。
NNTP(新闻传输协议)和其他。有几个协议是由第三方组织者提供的,其中一些是NNTP、S/MIME(安全多用途互联网邮件扩展),等等。
架构
如前所述,Java应用程序使用JavaMail API来读取、写入和编写E-mail(电子信息)。JavaMail API提供了一个框架,通过与平台无关和与协议无关的方式,使用Java创建邮件和信息传递客户端应用程序。JavaMail API利用了SPI(Service Provider Interface),它是Java应用处理各种协议的一个中间服务。让我们看看下面的架构,它描述了JavaMail的流程。
<图像>。
JavaMail API的概念机制与其他J2EE API如JNDI、JDBC和JMS有关,通过看上面的架构图,JavaMail API被分为两个基本部分。
- 与应用无关的。这一部分是一个应用编程接口(API),被应用组件用来发送和接收邮件信息。它是所使用的独立提供者或协议的基础。
- **服务依赖性:**这部分是一个服务提供者接口(SPI),它讲述了特定协议的语言,如POP、IMAP、SMTP和NNTP。它是基于J2EE平台的电子邮件服务的插件提供者。
属性
在JavaMail API的属性中,只有几个公认的属性在javax.mail的执行中被引用,这与J2EE的参考实现有关,这些属性被设置为字符串,其中的类型列定义了字符串的解释方式。让我们看看以下几个属性。
IMAP配置属性
| 名称 | 类型 | 描述 |
| mail.imap.host | 字符串 | 连接的IMAP服务器 - 连接到 |
| Mail.imap.user | 字符串 | IMAP的默认用户 - 用户名称 |
SMTP配置属性
| 名称 | 类型 | 描述 |
| mail.smtp.port | int | 它象征着与端口的连接。它设置默认为25。 |
| mail.smtp.timeout | int | 默认超时是无限的。I/O超时值的定义单位是毫秒。 |
POP3配置属性
| 名称 | 类型 | 描述 |
| Mail.pop3.host | 字符串 | 连接的POP3服务器 - 连接到 |
| 邮件.pop3.用户 | 字符串 | POP3的默认用户 - 用户名称 |
API提供了模拟邮件系统的类
在JavaMail API中,有各种接口和类,用于读取、发送和删除电子邮件信息。在JavaMail API中主要有两个包,它们是javax.mail和javax.mail.internet包。这些包包含有核心类,它们如下。
| 类 | 描述 |
| Javax.mail.Message | 它是一个电子邮件信息模型的抽象类。该子类提供了一些实现 |
| Javax.mail.Session | 这是API的主要关键类。它代表了连接工厂,是一个多线程的对象。 |
| Javax.mail.Address | 它们的子类提供了实现方式。这个抽象类描述了消息中从端到端的地址。 |
| Javax.mail.Transport | 它是一种用于发送/传输E-mail消息的消息传输机制。 |
| Javax.mail.Authenticator | 用于保护邮件服务器上的邮件资源。 |
| Javax.mail.internet.MimeMessage | 这是一个E-mail消息服务,它理解MIME类型(像格式等被使用的东西)和头文件。它在子类上工作。消息是抽象的类。 |
| Javax.mail.Store | 它的目的是建立一个消息存储和访问协议,用于检索和存储消息。存储器被分离成文件夹。 |
| Javax.mail.Folder | 它包含了子文件夹,该类代表了邮件信息的文件夹结构。 |
| Javax.mail.internet.InternetAddress | InternetAddress类表示电子邮件的内部地址,它使用RFC822的语法。地址格式将是user@host.domain 或个人姓名user@host.domain |
总结
在这篇文章中,我已经解释了JavaMail的API。希望这篇文章能帮助你理解。
推荐文章
这是一篇关于JavaMail Api的指南。在这里,我们讨论了JavaMail包括各种实现MIME互联网消息标准的类。你也可以看看下面的文章来了解更多