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的邮件系统后端,支持SMTP和POP3协议,提供邮件发送、接收、管理等功能。项目包含多个模块,涵盖了邮件服务的各个方面,包括客户端测试、服务器配置、邮件处理、用户管理等。 ## 主要...
# 基于Spring Boot框架的邮件发送系统 ## 项目简介 本项目是一个基于Spring Boot框架的邮件发送系统,旨在通过Spring Boot快速实现邮件发送功能。项目涵盖了发送文本邮件、HTML邮件、带附件的邮件以及使用模板发送...
《基于Spring Boot+MyBatis的CRM客户管理系统详解》 在现代企业中,客户关系管理(Customer Relationship Management,简称CRM)系统是至关重要的工具,它帮助企业有效地管理与客户的交互,提高销售效率,优化客户...
Spring Boot是Java开发领域中的一款热门框架,它简化了基于Spring的应用程序的初始设置和配置。这个压缩包包含了丰富的Spring Boot学习资料以及实际项目案例,是深入理解和掌握Spring Boot技术的宝贵资源。 首先,...
该项目是一个基于Spring Boot和Apache Freemarker的电子邮件发送系统。它允许用户通过自定义电子邮件模板、附件等功能,向指定的电子邮件地址发送邮件。用户可以编辑项目资源文件夹中的'email.ftl'文件来个性化电子...
《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并熟练掌握Spring Boot这一流行的Java后端开发框架。Spring Boot简化了Spring应用程序的初始设置和配置,使得开发人员能够快速构建可运行的...
基于Spring Boot的舆情分析系统 项目概述 本项目是一个基于Spring Boot的舆情分析系统,集成了爬虫、自然语言处理(NLP)、数据存储和可视化展示等功能。系统能够实时监控网络舆情,对文本和评论进行情感分析、...
该项目是一个基于Spring Boot框架构建的电子邮件验证系统。它使用MySQL作为数据库管理系统,通过Docker Compose进行容器化部署。该项目允许用户利用Amazon SES服务进行电子邮件发送和验证操作。它提供了简洁的集成...
基于Spring Boot框架的图书管理系统 内容概要 本项目是一个基于Spring Boot和Thymeleaf的图书管理系统,旨在提供一个简单而功能齐全的图书管理解决方案。系统支持用户预约图书、查看预约记录、还书,以及管理员...
3. 异步处理:对于耗时操作,如发送短信验证码、发送邮件等,可使用Spring Boot的异步编程模型。 4. 安全防护:使用Spring Security进行权限控制,防止未授权访问。 5. 日志记录:利用Spring Boot的日志管理,记录...
- `spring-boot-email-example`:展示如何通过 JavaMailSender 发送邮件。 **4. 数据访问** Spring Boot 提供了对多种数据存储的支持,包括: - SQL 数据库:通过 Spring Data JPA、MyBatis 等与 Hibernate、JDBC ...
基于Spring Boot框架的秒杀系统 项目简介 本项目是一个基于Spring Boot框架开发的秒杀系统,旨在处理高并发的商品秒杀场景。系统通过分布式锁、消息队列等技术手段,确保在高并发环境下商品库存的准确性和一致性...
# 基于Spring Boot和Thymeleaf的人事管理系统 ## 项目简介 本项目是一个基于Spring Boot和Thymeleaf框架的人事管理系统,旨在提供一个简单易用的平台来管理员工信息。系统支持员工信息的增删改查、权限管理、邮件...
- **自动配置**:Spring Boot 自动配置了很多常用的组件和技术栈,如数据库连接、安全框架、邮件发送等,大大降低了开发者的工作量。 - **组件支持广泛**:对于开发者希望集成到应用中的几乎所有常用框架和技术栈,...
《构建基于Spring-boot和Bootstrap的在线商城系统》 在当今数字化时代,电商平台已经成为商业运营的重要组成部分。本项目“基于Spring-boot和bootstrap搭建的商城系统”旨在利用先进的技术栈,为商家提供一个高效、...
《基于Spring Boot的体育场馆设施预约系统》 在现代体育活动中,有效的场馆设施管理与预约是确保活动顺利进行的关键。本系统以Spring Boot为核心技术,构建了一套完整的体育场馆设施预约解决方案,旨在优化场馆资源...
6. Spring Initializr:在线工具或命令行工具,用于快速创建基于Spring Boot的新项目。 在《Spring Boot实战》这本书中,作者会详细讲解如何使用Spring Boot创建RESTful服务、数据库访问、集成WebSocket、安全控制...
在实习期间,我参与了一个基于Spring Boot的CMS(内容管理系统)项目,这是一次非常宝贵的学习和实践经历。本文将详细分享我在项目中所学习到的关键知识点,以及Spring Boot如何帮助构建高效、稳定的CMS系统。 首先...
在Spring Boot中实现邮件发送功能,尤其是QQ邮箱的邮件服务,是一个常见的需求,常用于发送通知、验证码或者系统消息等。本篇文章将详细讲解如何在Spring Boot应用中设置并使用QQ邮箱服务来发送邮件。 首先,我们...