Spring提供了非常好用的 JavaMailSender接口实现邮件发送。只需引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
以qq邮箱为例,在 application.properties 中加入如下配置:
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
mail.from.add=xxx@qq.com
PS:
spring.mail.password=这里填写授权码
xxx@qq.com:自己的邮箱
实现:
package com.tony.demo.service.impl; import com.tony.demo.service.SendMailService; 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.Component; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; /** * @author tony.lu */ @Component public class SendMailServiceImpl implements SendMailService { Logger LOGGER= LoggerFactory.getLogger(SendMailServiceImpl.class); @Autowired private JavaMailSender javaMailSender; @Value("${mail.from.add}") private String fromAddr; @Override public void sendSimpleMail(String to, String subject, String content) { LOGGER.info("发送简单邮件,to:{},subject:{},content:{}",to,subject,content); SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); simpleMailMessage.setFrom(fromAddr); simpleMailMessage.setTo(to); simpleMailMessage.setSubject(subject); simpleMailMessage.setText(content); try { javaMailSender.send(simpleMailMessage); LOGGER.info("邮件发送成功"); }catch (Exception e){ LOGGER.error("邮件发送失败",e); } } @Override public void sendAttachMail(String to, String subject, String content, String filePath) { LOGGER.info("发送带附件的邮件,to:{},subject:{},content:{},filePath:{}",to,subject,content,filePath); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { MimeMessageHelper messageHelper=new MimeMessageHelper(mimeMessage,true); messageHelper.setFrom(fromAddr); messageHelper.setTo(to); messageHelper.setSubject(subject); messageHelper.setText(content); FileSystemResource file=new FileSystemResource(filePath); String fileName=filePath.substring(filePath.lastIndexOf(File.separator)); messageHelper.addAttachment(fileName,file); javaMailSender.send(mimeMessage); LOGGER.info("邮件发送成功"); } catch (MessagingException e) { LOGGER.error("邮件发送失败",e); } } @Override public void sendInlineResourceMail(String to, String subject, String content, String filePath, String pid) { LOGGER.info("发送静态资源的邮件,to:{},subject:{},content:{},filePath:{},rcid:{}",to,subject,content,filePath,pid); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { MimeMessageHelper messageHelper=new MimeMessageHelper(mimeMessage,true); messageHelper.setFrom(fromAddr); messageHelper.setTo(to); messageHelper.setSubject(subject); messageHelper.setText(content,true); FileSystemResource file=new FileSystemResource(filePath); messageHelper.addInline(pid,file); javaMailSender.send(mimeMessage); LOGGER.info("邮件发送成功"); } catch (MessagingException e) { LOGGER.error("邮件发送失败",e); } } }
设置 smtp,获取授权码:
测试结果:
详见附件中 demo
相关推荐
本资源提供了一套基于Spring Boot的邮件发送服务的设计源码,包含1629个文件,其中包括760个SVG矢量文件,642个PNG图片文件,以及56个CSS样式文件。此外,还包括25个JavaScript脚本文件,23个Java源代码文件,以及18...
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
基于spring boot 2实现的各类小例子。有aop日志,发送邮件,模板导出excel,模板导出word
邮件在项目中经常会被用到,比如用邮件发送通知。比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。本篇文章带大家通过SpringBoot快速实现一个发送邮件的功能。 邮件协议 下面先简单了解一下常见的...
1、项目可以从码云上拉取,Guns: Guns基于Spring Boot2,致力于做更简洁的后台管理系统。包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker...
基于Spring Boot + Vue 前后端分离的人力资源管理项目源码+数据库+需求规格说明书,可做常规企业级应用脚手架 安装部署 提前准备 准备三样东西: 空的 vhr 数据库 redis rabbitmq 项目导入 项目的使用 Maven导入 ...
[已实现] 增加邮件发送,订单支付成功和发货成功给客户和管理员分别发送邮件 ; # 已实现 (代码注释掉,根据自己需求增加) 增加支付功能,可以用支付宝当面付,入门门槛低 增加合作登陆,用QQ/微信/GITHUB等登陆,...
Guns基于Spring Boot2,致力于做更简洁的后台管理系统。包含系统管理,代码生成,多数据库适配,SSO单点登录,工作流,短信,邮件发送,OAuth2登录,任务调度,持续集成,docker部署等功。支持Spring Cloud Alibaba...
linjiashop是一个基于Spring Boot和Vue.js的web商城系统。linjiashop包含了商城的后台管理系统,手机h5和小程序版本。 linjiashop包含了后台管理功能和手机端商城业务功能 基础模块: 部门管理 用户管理 角色管理 ...
邮件管理:发送邮件、搜索邮件 文件管理:上传文件、文件列表、文件删除 公告管理:公告未读提醒、发布公告、查询公告、公告阅读人列表 excel下载:自定义sql导出excel、也可在页面展示sql结果数据 字典管理:...
WebSocket 实现服务端推送消息到客户端:Spring Boot 集成 Elasticsearch 实战:Spring Boot 集成阿里云 OSS 进行文件存储:Spring Boot 集成 Redis 实现数据缓存:Spring Boot 优雅地发送邮件:Spring Boot 集成 ...
linjiashop 是一个基于Spring Boot和Vue.js的web商城系统 linjiashop 包含了商城的后台管理系统,手机h5,小程序版本 功能模块 linjiashop包含了后台管理功能和手机端商城业务功能 - 基础模块 - 部门管理 - 用户管理 ...
1、基于spring-boot+vuejs+element-ui的新闻发布管理系统源码+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...
Spring Boot 基础教程(基于1.3.x-1.5.x) 快速入门 chapter1:基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程 ...
2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、...
基于spring boot简单的邮件发送demo,可以当做mail和spring boot练习用
前台使用Vue+Vuetify,后端使用Spring Boot+Spring Cloud+Mybatis开发,使用Jwt做登录验证,使用ElasticSearch作为动态和音乐的检索服务,使用RabbitMQ作为服务间消息传递服务,使用RabbitMQ+Stomp.js实现后端和前端...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
Spring Boot+Mybatis-Plus校园二手交易平台...基于 JavaMail 实现用 QQ 邮箱发送邮件;前台界面采用了Bootstrap4框架;后台界面采用了jQuery EasyUI框架;Redis存储用户购物车信息;Gson处理JSON数据;Quartz定时任务;
Java基于Spring Boot开发的商城系统源码 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 消息管理:配置消息模板,发送...