Springboot+ActiveMQ+JavaMail实现异步邮件发送
@Autowired MailService mailService;
@Value("${mail.to}") private String mailTo;
mailSender.send(mailMessage);
("邮件发送成功");
} catch(Exception ex){
logger.error("邮件发送失败",ex);
}
}
/** * 发送带附件的邮件 */
@Override public void sendAttachMail(String[] to, String subject, String context, String filePath) {
@Value("${ername}")//从配置文件中获取发件人邮箱 public String from;
/** * 发送普通文本邮件 */
@Override public void sendSimpleMail(String to, String subject, String context){
MimeMessage message = mailSender.createMimeMessage(); try{
MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(context,true);
mailSender.send(message); ("带邮件的附件发送成功"); }catch(Exception ex){ logger.error("带附件的邮件发送失败",ex); } }
/** * 发送正文带图片的邮件
*/ @Override public void sendInlineMail(String to, String subject, String context, String filePath, String resId) {
MimeMessage mailMessage = mailSender.createMimeMessage();
try{//发送非纯文本的邮件都需要用的 helper 来解析
MimeMessageHelper helper = new MimeMessageHelper(mailMessage);
mailSender.send(mailMessage);//发送邮件 ("邮件发送成功"); }
/** * 发送 HTML 邮lic void sendMimeMail(String to, String subject, String context){
FileSystemResource res = new FileSystemResource(new File(filePath)); helper.addInline(resId, res); mailSender.send(message); ("邮件发送成功"); } catch (Exception ex){ logger.error("邮件发送失败",ex); } }
###mail config ### spring.mail.host=(配置邮件发送协议) ername=xxxx@(发件人,具体配成你需要的邮箱) spring.mail.password=对于 qq 邮箱来说,这里不是密码,而是授权码 spring.mail.default-encoding=utf-8 mail.to=xxxx@ (为了方便,我这里将收件人统一配置成一个,实际业务中肯定按照实际情况发送的)
}
代码中分别对发送普通文本邮件、HTML 邮件、代码附件的邮件、带图片的邮件进行了示范
4.编写测试类 package com.mail;
import com.mail.service.MailService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;
helper.setFrom(from);
helper.setTo(to);
//
helper.setBcc("xxxx@");//抄送人
helper.setSubject(subject);
helper.setText(context,true);//这里的第二个参数要为 true 才会解析 html 内容
@Test public void testSendInlineMail(){
String resId = "1"; String context = "<html><body> 你 好 , <br> 这 是 一 封 带 静 态 资 源 的 邮 件 <br><img src=\'cid:"+resId+"\'></body></html>"; mailService.sendInlineMail(mailTo,"带静态图片的邮件",context,"D:\\1.jpg",resId); }
MimeMessage message = mailSender.createMimeMessage(); try{
MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(context);
至于授权码的获取,需要到 qq 邮箱里面 设置->账户,然后到图示的地方,开启服务,然后 根据提示获取授权码:
3.接下来实现发送邮件的代码
package com.mail.service.impl;
import com.mail.service.MailService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils;
一、springboot 整合 JavaMailSender
在发送异步邮件之前,先来简单介绍下邮件发送的基本内容,了解邮件是怎么发送的,然后 再在此基础上添加 activemq。 要发送邮件就要用到 JavaMail,它是 Java 官方为方便 Java 开发人员在应用程序中实现邮件 发送和接收功能而提供的一套标准开发包,它支持常见的邮件协议:SMTP/POP3/IMAP/MIME 等。想要发送邮件只需要调用 JavaMail 的 API 即可。后来,Spring 对于 JavaMail 进行了封装, 然后 springboot 又进一步封装,现在使用起来非常方便。请看代码: 1.新建 springboot 工程:mail-sender 2.添加配置文件:application.properties
@Test public void testSimpleMail(){
mailService.sendSimpleMail(mailTo,"纯文本邮件","你好,这是一封测试邮件"); } @Test public void testMimeMail(){
String context = "<html>\n" + "<body>\n" + "你好,<br>" + "这是一封 HTML 邮件\n" + "</body>\n" + "</html>";
mailService.sendMimeMail(mailTo,"HTML 邮件",context); }
java发邮件方法
java发邮件方法Java是一种功能强大的编程语言,它提供了多种方法来实现发送邮件的功能。
本文将介绍两种常用的Java发邮件的方法,分别是使用JavaMail API和使用Spring Framework的JavaMail库。
JavaMail API是一个用于发送和接收电子邮件的标准API,它是Java平台的一部分。
使用JavaMail API,我们可以在Java程序中轻松地发送邮件。
下面是使用JavaMail API发送邮件的步骤:1. 添加依赖:首先,我们需要在我们的Java项目中添加JavaMail API的依赖。
可以通过Maven或Gradle等构建工具,将以下依赖添加到项目的构建文件中:```xml<dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency>```2. 创建会话对象:接下来,我们需要创建一个会话对象,用于与邮件服务器进行通信。
可以使用javax.mail.Session类的getInstance()方法来创建会话对象,该方法接受一个Properties对象作为参数,用于指定邮件服务器的配置信息,如SMTP 服务器的地址、端口号等。
```javaProperties properties = new Properties();properties.put("mail.smtp.host", "");properties.put("mail.smtp.port", "25");Session session = Session.getInstance(properties);```3. 创建邮件消息:然后,我们需要创建一个邮件消息对象,用于设置邮件的各种属性,如发件人、收件人、主题、内容等。
Java发送邮件——SpringBoot集成JavaMail
Java发送邮件——SpringBoot集成JavaMail ⽤途:此⽂仅供,⾃⼰今后的⼩程序通过邮件,批量通知⽤户。
简单记录了⼀些发送基本邮件的操作。
项⽬(SpringBoot版本为2.1.2.RELEASE):核⼼依赖(其他相关依赖,在其使⽤的地⽅具体说明):<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>application.yml——邮件发送相关配置:spring:mail:host: username: ***@password: *** #qq邮箱开启POP3/SMTP服务后,⽣成的授权码receiver: ***@protocol: smtpdefault-encoding: utf-8邮件实体类(使⽤Lombok的注解简化实体构造):import lombok.Data;import org.springframework.core.io.FileSystemResource;@Datapublic class MailBean {private String subject;private String text;private FileSystemResource file;private String attachmentFilename;private String contentId;}简单封装邮件发送的⼯具类:import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import ponent;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;@Componentpublic class MailUtil {private final JavaMailSender mailSender;@Value("${ername}")private String sender;@Value("${spring.mail.receiver}")private String receiver;@Autowiredpublic MailUtil(JavaMailSender mailSender) {this.mailSender = mailSender;}public void sendMailSimple() {SimpleMailMessage mimeMessage = new SimpleMailMessage();mimeMessage.setFrom(sender);mimeMessage.setTo(receiver);mimeMessage.setSubject("主题");mimeMessage.setText("正⽂");mailSender.send(mimeMessage);}private void sendMail(MailBean mailBean, boolean html, boolean multipart) {MimeMessage mimeMessage = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, multipart); helper.setFrom(sender);helper.setTo(receiver);helper.setSubject(mailBean.getSubject());helper.setText(mailBean.getText(), html);if (mailBean.getFile() != null) {helper.addAttachment(mailBean.getAttachmentFilename(), mailBean.getFile()); }} catch (MessagingException e) {e.printStackTrace();}mailSender.send(mimeMessage);}public void sendMail(MailBean mailBean) {sendMail(mailBean, true, true);}public void sendMailText(MailBean mailBean) {sendMail(mailBean, false, false);}public void sendMailHtml(MailBean mailBean) {sendMail(mailBean, true, false);}public void sendMailInline(MailBean mailBean) {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);try {helper.setFrom(sender);helper.setTo(receiver);helper.setSubject(mailBean.getSubject());helper.setText(mailBean.getText(), true);helper.addInline(mailBean.getContentId(), mailBean.getFile());} catch (MessagingException e) {e.printStackTrace();}mailSender.send(mimeMessage);}}单元测试就不写了,忘记怎么写了。
Springboot实现邮件发送功能
Springboot实现邮件发送功能本⽂实例为⼤家分享了Springboot实现邮件发送具体代码,供⼤家参考,具体内容如下需求:⽤户注册账号绑定邮箱之后,下次登录时忘记密码,需要通过邮箱找回密码1.创建springboot项⽬2.pom导⼊依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>3.application.properties配置⽂件spring.mail.host=ername=sple_vip@//发件⼈邮箱,需要开启smtp服务spring.mail.password=ming438434//授权密码,⾮邮箱的登录密码spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8发件⼈邮箱的设置:邮箱客户端授权码也需要⼿动开启,设置授权码4.⽤户输⼊⾃⼰的邮箱,点击找回,前端页⾯html代码:<div class="regWrap"><div class="regName"><span>请输⼊邮箱</span><input id="mail" type="email" class="mail" placeholder="请输⼊邮箱"></div><button id="registbtn" class="regBtn" type="button">找回</button></div>js代码:$(function () {$("#registbtn").click(function() {var user = {mail:$("#mail").val()}$.ajax({type: "POST",url:"/mail.action",contentType: "application/json;",data: JSON.stringify(user),success: function (data) {if(data == "successful"){alert("已发送⾄您的邮箱")location.href="/login.html" rel="external nofollow" ;}if (data=="failful") {alert("邮箱错误")}},error: function (data) {alert("⽹络繁忙")}});});});5.点击找回,进⼊controller层@RequestMapping("/mail.action")public String mail(@RequestBody User user) {return mailService.sendMail(user);}service层@Servicepublic class MailServiceImpl implements MailService{@Autowiredprivate JavaMailSender javaMailSender;@Autowiredprivate UserMapper userMapper;@Overridepublic String sendMail(User user) {User user2 = mailPwd(user);StringBuilder stringBuilder=new StringBuilder();stringBuilder.append("<html><head><title></title></head><body>");stringBuilder.append("亲爱的⽤户"+user2.getAccount()+",您的当前密码是:"+user2.getPassword()); stringBuilder.append("</br><a href='https:///'>访问百度</a></body><html>");MimeMessage mimeMessage=javaMailSender.createMimeMessage();//multipart模式try {MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage, true);mimeMessageHelper.setTo(user.getMail());//收件⼈邮箱user.getMail()mimeMessageHelper.setFrom("sple_vip@");//发件⼈邮箱mimeMessage.setSubject("找回密码");//启⽤htmlmimeMessageHelper.setText(stringBuilder.toString(),true);javaMailSender.send(mimeMessage);return Constent.SUCCESSFUL;} catch (MessagingException e) {e.printStackTrace();return Constent.FAILFUL;}}/*** 通过邮箱到数据库查询⽤户的信息*/@Overridepublic User mailPwd(User user) {return userMapper.mailPwd(user);}}dao层public interface UserMapper {/*** 通过邮箱查询⽤户信息*/@Select("SELECT * FROM user WHERE mail = #{mail}")public User mailPwd(User user);}发送成功效果这是⼀个简单的通过邮箱找回密码就完成了。
(二)【Java】Spring进阶—如何用Java代码实现邮件发送
【Java】Spring进阶—如何用Java代码实现邮件发送——成都源代码教育专业整理关于Java等技术性文章。
在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技术。
发送邮件可能大家都觉得简单,打开浏览器,登录邮箱,写信,发送邮件?那么我们这里讲的可是直接使用Java代码实现邮件发送。
方案一:可以直接使用SUN的JavaMail可以发送邮件,不过代码写起来很麻烦。
如果手写过JavaMail发送邮件,就会深知其api之繁琐。
方案二:利用apache的Email,可以快捷的实现邮件的发送,具体教程可以参考官网的: /email/userguide.html。
方案三:Spring也提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时代表客户端负责底层的资源处理。
Spring邮件抽象层的主要包为org.springframework.mail。
它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。
包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层邮件系统异常的高级别抽象。
开发步骤,使用Spring mail:一、加入spring和相关jar文件二、Spring配置文件email-163.xml三、Junit成功运行,需要修改email-163.xml里面的用户名和密码的配置,以及测试文件里面的setForm的内容。
本次给大家分享的是spring怎样发送简单邮件,下次在和大家讲解附件的发送、内嵌html、模版文件的发送。
发送带附件的邮件:Multipart email允许添加附件和内嵌资源(inline resources);使用一个简单的JPEG图片作为附件,android.png放在工程的根目录,以相对路径的方式加载。
结合Spring2.0和ActiveMQ进行异步消息调用 - 完善自我,超越自我 - 七杀家园 Web开发者的博客 - Powered By
结合Spring2.0和ActiveMQ进行异步消息调用- 完善自我,超越自我- 七杀家园Web开发者的博客- Powered By在Spring 2.0之前,Spring的JMS的作用局限于产生消息。
这个功能(封装在JmsTemplate 类中)当然是很好的,但是,它没有描述完整的JMS堆栈,比如像消息的异步产生和消耗。
JMS堆栈缺少的这一部分已经被添加,Spring 2.0现在提供对消息异步消耗的完整支持。
让我们从一个例子开始。
首先我们打开ActiveMQ。
从ActiveMQ的安装路径上的bin目录,那里有一个ActiveMQ.bat,双击执行即可。
不过要注意必须先设置java_home环境变量。
ActiveMQ默认的服务端口是61616。
然后我们开始配置Spring配置文件。
我起名为spring-jms.xml首先要配置一个ConnectionFactory代码如下Copy code<bean id="connectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"value="tcp://localhost:61616" /></bean>这里用到的ConnectionFactory是ActiveMQ提供的工厂,为了能使用这个工厂,我们必须在项目中添加以下几个jar文件:geronimo-jms_1.1_spec-1.0.jar,activeio-core-3.0-beta3.jar,activemq-core-4.0.1.jar,backport-util-concurrent-2.1.jar,commons-logging-1.0.4.jar,geronimo-j2ee-management_1.0_spec-1.0.jar以上这些Jar文件都存在于ActiveMQ安装目录的lib目录下,这些可是我一个一个试验出来的,累个半死。
SpringBoot实现发送邮件功能
SpringBoot实现发送邮件功能背景有个⼩伙伴问我你以前发邮件功能怎么弄的。
然后我就给他找了个demo,正好在此也写⼀下,分享给⼤家。
理清痛点发送邮件,⼤家可以想⼀下,坑的地⽅在哪?我觉得是三个吧。
第⼀:邮件⽩名单问题。
第⼆:邮件超时问题。
第三:邮件带附件问题。
我下⾯的demo都会介绍这些问题及解决。
实现⽅案准备⼯作我们先要准备⼀个可以发送的邮箱,我这⾥以我的163邮箱为例,现在发送邮件的规则,要求你输⼊⼀种叫做授权码的东西,注意这个东西不是密码。
获取授权码的步骤:当选择开启,通过验证之后就可以获取到验证码。
选择重置验证码也可以获取。
以前17年的时候就写过⼀个demo,现在19年⼜开了⼀个,因为以前的忘了。
SpringBoot项⽬引⼊邮件包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>yml配置邮件相关spring:mail:# 邮件服务地址host: # 端⼝,可不写默认port: 25# 编码格式default-encoding: utf-8# ⽤户名username: xxx@# 授权码,就是我们刚才准备⼯作获取的代码password: xxx# 其它参数properties:mail:smtp:# 如果是⽤ SSL ⽅式,需要配置如下属性,使⽤qq邮箱的话需要开启ssl:enable: truerequired: true# 邮件接收时间的限制,单位毫秒timeout: 10000# 连接时间的限制,单位毫秒connectiontimeout: 10000# 邮件发送时间的限制,单位毫秒writetimeout: 10000针对于上⾯提的超时问题,捕获超时异常就可解决。
springboot集成spring-boot-starter-mail邮件功能
springboot集成spring-boot-starter-mail邮件功能Spring Boot是由Pivotal团队提供的全新框架,其设计⽬的是⽤来简化新Spring应⽤的初始搭建以及开发过程。
该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。
通过这种⽅式,Spring Boot致⼒于在蓬勃发展的快速应⽤开发领域(rapid application development)成为领导者。
总之就是springboot 真⾹相信使⽤过Spring的众多开发者都知道Spring提供了⾮常好⽤的JavaMailSender接⼝实现邮件发送。
在Spring Boot的Starter模块中也为此提供了⾃动化配置。
下⾯通过实例看看如何在Spring Boot中使⽤JavaMailSender发送邮件。
1.使⽤普通的maven项⽬需要加⼊spring-context-support依赖,因为JavaMailSenderImpl类在这个包下⾯:2.使⽤springboot 需要引⼊<!-- email --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>依赖引⼊之后在我们的配置⽂件中做如下配置注意这⾥⾯的密码是我们邮箱的授权码不是登陆的密码另外有上传到服务器中报错⽆法使⽤的⽐如阿⾥云腾讯云以腾讯云为例可以申请去解封25端⼝百度很多⽅法。
在这只提⼀下这个问题在本博客只演⽰的发送邮件和附件/*** ⽆附件简单⽂本内容发送* @param email 接收⽅email* @param subject 邮件内容主题* @param text 邮件内容*/public void simpleMailSend(String email,String subject,String text) {//创建邮件内容SimpleMailMessage message=new SimpleMailMessage();message.setFrom(username);//这⾥指的是发送者的账号message.setTo(email);message.setSubject(subject);message.setText(text);//发送邮件mailSender.send(message);System.out.println("\033[32;1m"+"发送给 "+email+" 的邮件发送成功"+"\033[0m");}/*** 发送带附件的邮件** @param to 接受⼈* @param subject 主题* @param html 发送内容* @param filePath 附件路径* @throws MessagingException 异常* @throws UnsupportedEncodingException 异常*/public void sendAttachmentMail(String to, String subject, String html, String filePath) throws MessagingException, UnsupportedEncodingException {MimeMessage mimeMessage = mailSender.createMimeMessage();// 设置utf-8或GBK编码,否则邮件会有乱码MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");messageHelper.setFrom(username,emailName);messageHelper.setTo(to);messageHelper.setSubject(subject);messageHelper.setText(html, true);FileSystemResource file=new FileSystemResource(new File(filePath));String fileName=filePath.substring(stIndexOf(File.separator));messageHelper.addAttachment(fileName,file);mailSender.send(mimeMessage);}/*** 发送html内容的邮件* @param email* @param subject* @param text*/public void sendSimpleMailHtml(String email,String subject,String text) throws MessagingException {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setFrom(username);helper.setTo("demogogo@");helper.setSubject("主题:嵌⼊静态资源");// 注意<img/>标签,src='cid:jpg','cid'是contentId的缩写,'jpg'是⼀个标记helper.setText("<html><body><img src=\"cid:jpg\"></body></html>", true);// 加载⽂件资源,作为附件FileSystemResource file = new FileSystemResource(new File("C:\\Users\\吴超\\Pictures\\Camera Roll\\微信截图_20191016142536.png")); // 调⽤MimeMessageHelper的addInline⽅法替代成⽂件('jpg[标记]', file[⽂件])helper.addInline("jpg", file);// 发送邮件mailSender.send(mimeMessage);}打开我们的邮箱⼩姐姐到⼿。
利用Spring框架封装的JavaMail实现同步或异步邮件发送
利用Spring框架封装的JavaMail实现同步或异步邮件发送利用Spring框架封装的JavaMail现实同步或异步邮件发送作者:张纪豪J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用。
它既然是规范,那么我们就可以通过JDK遵照邮件协议编写一个邮件处理系统,但事实上已经有很多厂商和开源组织这样做了。
Apache 是J2EE最积极的实现者之一,当然还有我们的老大——SUN。
聊起老大,感慨万端!他已经加入Oracle——甲骨文(不是刻在乌龟壳上的那种文字吗?是我中华,也是人类上最早的语言啊,比Java早几千年哦),其掌门人拉里·埃里森是个不错的水手,别以为那只是在帆船上,至少他不至于盖茨那么不仁道——开源万岁。
有理由相信Java世界还有一段辉煌的历程。
Google 的Android和Chrome OS两大操作系统,还会首选Java作应用开发基础语言,即便是推出自己的易语言。
同时笔者预感到ChromeOS前景不可估量,它可能是推动云计算一个重要组成部分,Andtroid(主用在移动设备上,未来可能是手机上主流的操作系统),乃至微软的Windows将来可能都是该系统的小窗口而已。
微软已显得老态龙钟了,再与大势已去的雅虎合作,前进步伐必将大大减缓。
投资者此时可以长线买入Google股票(投资建议,必自判断)。
笔者也常用google搜索引擎、gmail。
好了,闲话少聊,言归主题。
可能大家如笔者一样用的最多的是老大的javamail,虽然老大实现了邮件功能,但调用起来还是需要较复杂的代码来完成,而且初学者调用成功率很低(因为它还要与外界服务器通信),这就使得初学者对于它越学越迷茫。
不过这方面的例子很多,因此笔者不再在此重复这些示例代码,而着重利用Spring 框架封装的邮件处理功能。
开工之前,我们先了解下环境。
笔者开的是web工程,所需要的基础配置如下:▲ JDK 1.6▲ J2EE 1.5▲ JavaMail 1.4 稍作说明:J2EE 1.5中已经纳入了邮件规范,因此在开发期不要导入javamail中的jar包,运行期则需要,因此可以将jar包放入到web容器的java库中(例如Tomcat的lib目录下),要了解其意可以参考数据库驱动包的运用。
SpringBoot+JavaMailSender实现腾讯企业邮箱配置
SpringBoot+JavaMailSender实现腾讯企业邮箱配置1. 引⼊spring-boot-starter-mail 依赖包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2. 在application.yml配置邮箱基本信息spring:mail:host: port: 465username: xxx@password: xxxxprotocol: smtpproperties:mail:smtp:auth: truessl:enable: truesocketFactory:class: com.sun.mail.util.MailSSLSocketFactoryfallback: false3. 实现代码@AutowiredJavaMailSender javaMailSender;public void testSend() {SimpleMailMessage message = new SimpleMailMessage();message.setFrom("XXX@"); //发送者邮箱地址此地址⼀定要和yml邮箱⼀致message.setTo("xxx@"); //收件⼈邮箱地址message.setSubject("测试主题");message.setText("测试内容");jms.send(message);}注意:如果代码报:501 mail from address must be same as authorization user 错误;引起原因是yml中配置的邮箱地址和代码中message.setFrom(xx@);不⼀致导致;到此这篇关于SpringBoot+JavaMailSender实现腾讯企业邮箱配置的⽂章就介绍到这了,更多相关SpringBoot JavaMailSender 腾讯邮箱配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
SpringBoot整合Mail发送邮件功能
SpringBoot整合Mail发送邮件功能⽬录前⾔Maven依赖使⽤QQ邮箱演⽰发送普通邮件验证码案例前⾔我们在⽹站上注册账号的时候⼀般需要获取验证码,⽽这个验证码⼀般发送在你的⼿机号上还有的是发送在你的邮箱中,注册,账号密码…都需要⽤到验证,今天就演⽰⼀下如何⽤SpringBoot整合Mail 发送邮箱。
Maven依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>使⽤QQ邮箱演⽰国内QQ邮箱的⽤户占多数,所以本⽂以QQ邮箱作为演⽰。
使⽤QQ邮箱需要开启SMTP服务QQ邮箱默认关闭了SMTP服务,所以需要我们⼿动打开:配置application.properties/yml# 应⽤服务 WEB 访问端⼝server.port=8080# 邮箱⽤户名ername=your mail# 授权码spring.mail.password=授权码# 邮箱主机spring.mail.host=# 开启SSLspring.mail.properties.mail.smtp.ssl.enable=true# 认证spring.mail.properties.mail.smtp.auth=true# 开启SSL安全模式spring.mail.properties.mail.smtp.starttls.enable=true# 必须启动SSL安全模式spring.mail.properties.mail.smtp.starttls.required=true# SSL Config# 端⼝spring.mail.port=465# 协议spring.mail.protocol=smtp# 默认编码spring.mail.default-encoding=UTF-8# 套接字⼯⼚端⼝spring.mail.properties.mail.smtp.socketFactory.port=465# 套接字⼯⼚类spring.mail.properties.mail.smtp.socketFactory.class=.ssl.SSLSocketFactory配置好这些后,springboot会⾃动帮我们配置好相关的邮件发送类。
