您的位置 首页 java

Java Mail 详细教程

JavaMail是一个用于撰写,编写和阅读电子邮件(电子邮件)的API。

JavaMail API为发送和接收邮件提供了独立于协议和不依赖于平台的框架。

Thejavax.mailandjavax.mail.activationpackages包含JavaMail API的核心类。

JavaMail工具可以应用于许多事件。 它可以在注册用户时发送(发送通知,例如感谢您对我的网站感兴趣),忘记密码(向用户电子邮件ID发送密码),发送重要更新通知等。因此可以有各种用法 的Java邮件API。

JavaMail API中使用的协议

JavaMail API中使用了一些协议。

  • SMTP

  • POP

  • IMAP

  • MIME

  • NNTP和其他

SMTP

SMTP是简单邮件传输协议的缩写。它提供了一个传递电子邮件的机制。我们可以使用Apache James服务器,Postcast服务器,cmail服务器等作为SMTP服务器。但是,如果我们购买主机空间,主机提供商默认提供一个SMTP服务器。例如,我的smtp服务器是mail.javatpoint. com 。如果我们使用主机提供商提供的SMTP服务器,则需要进行身份验证才能发送和接收电子邮件。

POP

POP是邮局协议的缩写,也称为POP3。它提供了一个接收电子邮件的机制。它为每个用户提供对单个邮箱的支持。我们可以使用Apache James服务器,cmail服务器等作为POP服务器。但是,如果我们购买主机空间,POP服务器由主机提供商默认提供。例如,主机提供商为我的网站提供的pop服务器是mail.javatpoint.com。该协议在RFC 1939中定义。

IMAP

IMAP是Internet消息访问协议的首字母缩写。 IMAP是用于接收消息的高级协议。它为每个用户提供对多个邮箱的支持,另外,邮箱可以被多个用户共享。它在RFC 2060中定义。

MIME

多个互联网邮件扩展(MIME)告诉浏览器正在发送什么,例如附件,邮件格式等。它不被称为邮件传输协议,但它被您的邮件程序使用。

NNTP和其他

有许多协议是由第三方提供商提供的。其中一些是网络新闻传输协议(NNTP),安全多用途互联网邮件扩展(S / MIME)等。

JavaMail架构

Java应用程序使用JavaMail API编写,发送和接收电子邮件。 JavaMail API使用SPI(服务提供者接口),为Java应用程序提供中介服务来处理不同的协议。让我们用下面的数字来理解它:

JavaMail API核心类

Java Mail API中有两个包: javax .mail和javax.mail.internet包。 这些软件包包含许多用于Java Mail API的类。 他们是:

  • javax.mail. Session

  • javax.mail. Message

  • javax.mail.internet.MimeMessage类

  • javax.mail.Address类

  • javax.mail.internet.InternetAddress类

  • javax.mail.Authenticator类

  • javax.mail.PasswordAuthentication类

  • javax.mail.Transport类

  • javax.mail.Store类

  • javax.mail.Folder类等

当它们被使用时,我们将逐一了解这些类。

用Java发送电子邮件

使用JavaMail API发送电子邮件有多种方式。 为此,您必须具有负责发送邮件的SMTP服务器。

您可以使用以下技术之一来获取SMTP服务器:

  • 安装并使用任何SMTP服务器,例如Postcast服务器,Apache James服务器,cmail服务器等(或)

  • 使用主机提供商提供的SMTP服务器,例如 我的SMTP服务器是mail.javatpoint.com(或)

  • 使用其他公司提供的SMTP服务器 Gmail 等。

在这里,我们将学习以上三种使用javamail API发送电子邮件的方法。 但我们应该学习从Java应用程序发送电子邮件的基本步骤。

使用JavaMail API发送电子邮件的步骤

使用JavaMail发送电子邮件有以下三个步骤。 他们如下:

  • 获取会话对象,存储主机的所有信息,如主机名,用户名,密码等。

  • 编写消息

  • 发送消息

1)获取会话对象

Thejavax.mail.Session类提供了两种获取会话对象的方法,Session.getDefaultInstance()方法和Session. getInstance ()方法。 您可以使用任何方法来获取会话对象。

Session类的方法

getDefaultInstance()方法的示例

getInstance()方法的示例

2)编写消息

javax.mail.Message类提供了编写消息的方法。 但它是一个抽象类,所以它的子类javax.mail.internet.MimeMessage类最常用。

要创建消息,您需要在MimeMessage类构造函数中传递会话对象。 例如:

现在消息对象已经被创建,但是将信息存储在这个对象中MimeMessage类提供了很多方法。 我们来看看MimeMessage类提供的方法:

MimeMessage类的常用方法

编写消息的示例:

3)发送消息

javax.mail.Transport类提供了发送消息的方法。

运输类的常用方法

发送消息的示例:

用Java发送电子邮件的简单例子

在这个例子中,我们将学习如何通过安装在机器上的SMTP服务器发送电子邮件,例如 Postcast服务器,Apache James服务器,Cmail服务器等。如果要使用主机提供商提供的SMTP服务器发送电子邮件,请参阅此示例之后的示例。

要使用JavaMail API发送电子邮件,您需要加载两个jar文件:

  • mail.jar

  • activation.jar

在这个例子中,我们将学习如何通过安装在机器上的SMTP服务器发送电子邮件,例如 Postcast服务器,Apache James服务器,Cmail服务器等。如果要使用主机提供商提供的SMTP服务器发送电子邮件,请参阅此示例之后的示例。

要运行这个例子,你需要加载两个jar文件。 有4种方法来加载jar文件。 其中一种方法是设置类路径。 让我们看看如何运行这个例子:

通过主机提供商提供的SMTP服务器以Java方式发送电子邮件的示例

如果您正在使用主机提供商提供的SMTP服务器,例如 mail.javatpoint.com,您需要验证用户名和密码。 javax.mail.PasswordAuthentication类用于验证密码。

如果您使用JavaMail API发送电子邮件,请加载这两个jar文件:

  • mail.jar

  • activation.jar

正如你在上面的例子中看到的,userid和password需要被认证。 如本程序所示,您可以轻松发送电子邮件。 相应地更改用户名和密码。 让我们看看如何通过简单的技术再次运行它:

通过Gmail服务器以Java发送电子邮件

我们可以使用Gmail的SMTP服务器发送电子邮件。 如果您没有任何SMTP服务器并且可靠,那很好。 在这里,我们将学习如何通过 SSL (安全套接字层)通过gmail服务器发送电子邮件。 如果您通过Gmail服务器发送电子邮件,SSL基本上用于安全。

为了更好地理解本示例,请先了解使用JavaMail API发送电子邮件的步骤。

要使用JavaMail API发送电子邮件,您需要加载两个jar文件:

  • mail.jar

  • activation.jar

使用SSL通过Gmail服务器发送电子邮件的示例

正如你在上面的例子中看到的,userid和password需要被认证。 正如这个程序所说明的那样,您可以轻松地发送电子邮件,但相应地更改用户名和密码 让我们看看如何通过简单的技术再次运行它:

文章来源:智云一二三科技

文章标题:Java Mail 详细教程

文章地址:https://www.zhihuclub.com/184743.shtml

关于作者: 智云科技

热门文章

网站地图