JavaWeb--邮件发送原理

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb--邮件发送原理相关的知识,希望对你有一定的参考价值。

01: 邮件发送原理
02: 简单邮件发送实现
03: 复杂邮件发送实现

1. 邮件发送原理

  • 要在网络上实现邮件功能,必须要有专门的邮件服务器。
  • 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
  • SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。
  • 电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请。比如我们要使用QQ邮箱,就需要开通邮箱功能;

1.1 传输协议

  • SMTP协议(发送邮件)
    我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。
  • POP3协议(接收邮件)
    我们通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。

1.2 邮件收发原理

邮件服务器:

  • ①SMTP邮件服务器:替用户发送邮件和接收外面发送给本地用户的邮件
  • ​②POP3/IMAP邮件服务器:帮助用户读取SMTP邮件服务器接收进来的邮件

邮件传输协议:

  • ①电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行邮件传递,那就必须要遵守一定的规则,这个规则就是邮件传输协议
  • ​②SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则
  • POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则
  • ④IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则

我们说所有的邮件服务器和邮件客户端软件程序都是基于上面的协议编写的


1.3 使用Java实现邮件发送需要使用到的类

我们将用代码完成邮件的发送。这在实际项目中应用的非常广泛,比如注册需要发送邮件进行账号激活,再比如OA项目中利用邮件进行任务提醒等等。

使用Java发送 E-mail 十分简单,但是首先你应该准备 JavaMail API 和Java Activation Framework 。得到两个jar包:

  1. mail.jar
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>
  1. activation.jar
<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面所讲的SMTP,POP3,IMAP,还有MIME等。我们在使用JavaMail API 编写邮件时,无须考虑邮件的底层实现细节,只要调用JavaMail 开发包中相应的API类就可以了。

我们可以先尝试发送一封简单的邮件(首先需要确保电脑可以连接网络)步骤:

  • 创建包含邮件服务器的网络连接信息的Session对象。
  • 创建代表邮件内容的Message对象
  • 创建Transport对象,连接服务器,发送Message,关闭连接

主要有四个核心类,我们在编写程序时,记住这四个核心类,就很容易编写出Java邮件处理程序。

原理:



以上是关于JavaWeb--邮件发送原理的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb--复杂邮件发送实现

JavaWeb--简单邮件发送实现

JavaWeb网上图书商城完整项目--发送邮件

我应该如何使用 Outlook 发送代码片段?

javaweb网页实现邮箱发送

javaweb网页实现邮箱发送