本文我将阐述使用JavaMail方式发送和接收Email的详细说明,本博客本着以后遇到类似的邮件发送需求可以直接把代码粘过去直接使用,快捷方便省时间,对于刚接触的JavaMail的朋友们还是把文章过一遍,虽然本文不是最好的,但是我可以保证你能成功发送邮件;
关于邮件还有一些基本知识我将在下面简单介绍,关于邮件发送和接收的流程可以参考 邮件基本概念及发送方式
JavaMail 具体使用说明参考Oracle官网给出的API:链接地址
Jakarta Mail 具体使用说明参考Jakarta官方给出的API:链接地址
javax.mail.Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,例如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session 对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
javax.mail.Message类是创建和解析邮件的核心API,这是一个抽象类,通常使用它的子类javax.mail.internet.MimeMessage类。它的实例对象表示一份电子邮件。客户端程序发送邮件时,首先使用创建邮件的JavaMail API创建出封装了邮件数据的Message对象,然后把这个对象传递给邮件发送API(Transport 类) 发送,客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message类的实例中,客户端程序在使用邮件解析API从这个对象中解析收到的邮件数据。
javax.mail.Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议,客户端程序创建好Message对象后,只需要使用邮件发送API得到Transport对象,然后把Message对象传递给Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。
javax.mail.Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议,客户端程序接收邮件时,只需要使用邮件接收API得到Store对象,然后调用Store对象的接收方法,就可以从指定的POP3服务器获得邮件数据,并把这些邮件数据封装到表示邮件的 Message 对象中
下面我将使用JavaMail通过Thymeleaf模板的方式发送HTML内容(HTML内容存在资源图片关联)+附件内容,其实这是方式都是通过2~4小节的慢慢改造,学会这种方式,那么我们发送公司业务上的一些邮件是没有太大压力的;下面我不在展示是全部代码,只把补充的代码展示出来,其它的参照第4节代码
为了可以更好的测试邮件的接收,我这里使用163邮箱,把之前的邮件全部删除了,用有限发送了两封邮件给163邮箱,下面这个只是其中一封邮件内容
补:打印出的第一条邮件内容:
不知不觉中我们就会使用JavaMail发送和接收邮件,不过我要告诉大家的是javax.JavaMail最后一个版本发布于2018年8月,此后则停止更新;如果在新项目中使用到了邮件发送我推荐大家使用Jakarta Mail,它是JavaMail的前身;其实Jakarta Mail使用起来和JavaMail基本上一样,把上面代码拷贝过去照样运行,不过我下一篇主要介绍SpringBoot集成JakartaMail
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/4594.html