`
bestlovetoad
  • 浏览: 270 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于spring boot发送邮件

 
阅读更多

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的邮件发送服务设计源码

    本资源提供了一套基于Spring Boot的邮件发送服务的设计源码,包含1629个文件,其中包括760个SVG矢量文件,642个PNG图片文件,以及56个CSS样式文件。此外,还包括25个JavaScript脚本文件,23个Java源代码文件,以及18...

    基于Spring Boot的邮件系统后端项目.zip

    本项目是一个基于Spring Boot的邮件系统后端,支持SMTP和POP3协议,提供邮件发送、接收、管理等功能。项目包含多个模块,涵盖了邮件服务的各个方面,包括客户端测试、服务器配置、邮件处理、用户管理等。 ## 主要...

    (源码)基于Spring Boot框架的邮件发送系统.zip

    # 基于Spring Boot框架的邮件发送系统 ## 项目简介 本项目是一个基于Spring Boot框架的邮件发送系统,旨在通过Spring Boot快速实现邮件发送功能。项目涵盖了发送文本邮件、HTML邮件、带附件的邮件以及使用模板发送...

    一个基于Spring boot+mybatis客户管理系统

    《基于Spring Boot+MyBatis的CRM客户管理系统详解》 在现代企业中,客户关系管理(Customer Relationship Management,简称CRM)系统是至关重要的工具,它帮助企业有效地管理与客户的交互,提高销售效率,优化客户...

    spring boot资料以及项目

    Spring Boot是Java开发领域中的一款热门框架,它简化了基于Spring的应用程序的初始设置和配置。这个压缩包包含了丰富的Spring Boot学习资料以及实际项目案例,是深入理解和掌握Spring Boot技术的宝贵资源。 首先,...

    基于Spring Boot和Apache Freemarker的电子邮件发送系统

    该项目是一个基于Spring Boot和Apache Freemarker的电子邮件发送系统。它允许用户通过自定义电子邮件模板、附件等功能,向指定的电子邮件地址发送邮件。用户可以编辑项目资源文件夹中的'email.ftl'文件来个性化电子...

    Spring Boot实战派(源码)

    《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并熟练掌握Spring Boot这一流行的Java后端开发框架。Spring Boot简化了Spring应用程序的初始设置和配置,使得开发人员能够快速构建可运行的...

    基于Spring Boot的舆情分析系统.zip

    基于Spring Boot的舆情分析系统 项目概述 本项目是一个基于Spring Boot的舆情分析系统,集成了爬虫、自然语言处理(NLP)、数据存储和可视化展示等功能。系统能够实时监控网络舆情,对文本和评论进行情感分析、...

    基于Spring Boot框架的电子邮件验证系统

    该项目是一个基于Spring Boot框架构建的电子邮件验证系统。它使用MySQL作为数据库管理系统,通过Docker Compose进行容器化部署。该项目允许用户利用Amazon SES服务进行电子邮件发送和验证操作。它提供了简洁的集成...

    基于Spring Boot框架的图书管理系统.zip

    基于Spring Boot框架的图书管理系统 内容概要 本项目是一个基于Spring Boot和Thymeleaf的图书管理系统,旨在提供一个简单而功能齐全的图书管理解决方案。系统支持用户预约图书、查看预约记录、还书,以及管理员...

    基于Spring Boot家政服务系统lw+ppt.rar

    3. 异步处理:对于耗时操作,如发送短信验证码、发送邮件等,可使用Spring Boot的异步编程模型。 4. 安全防护:使用Spring Security进行权限控制,防止未授权访问。 5. 日志记录:利用Spring Boot的日志管理,记录...

    Spring Boot 教程、技术栈示例代码,快速简单上手教程。

    - `spring-boot-email-example`:展示如何通过 JavaMailSender 发送邮件。 **4. 数据访问** Spring Boot 提供了对多种数据存储的支持,包括: - SQL 数据库:通过 Spring Data JPA、MyBatis 等与 Hibernate、JDBC ...

    基于Spring Boot框架的秒杀系统.zip

    基于Spring Boot框架的秒杀系统 项目简介 本项目是一个基于Spring Boot框架开发的秒杀系统,旨在处理高并发的商品秒杀场景。系统通过分布式锁、消息队列等技术手段,确保在高并发环境下商品库存的准确性和一致性...

    (源码)基于Spring Boot和Thymeleaf的人事管理系统.zip

    # 基于Spring Boot和Thymeleaf的人事管理系统 ## 项目简介 本项目是一个基于Spring Boot和Thymeleaf框架的人事管理系统,旨在提供一个简单易用的平台来管理员工信息。系统支持员工信息的增删改查、权限管理、邮件...

    Spring cloud和Spring boot介绍

    - **自动配置**:Spring Boot 自动配置了很多常用的组件和技术栈,如数据库连接、安全框架、邮件发送等,大大降低了开发者的工作量。 - **组件支持广泛**:对于开发者希望集成到应用中的几乎所有常用框架和技术栈,...

    基于Spring-boot和bootstrap搭建的商城系统.zip

    《构建基于Spring-boot和Bootstrap的在线商城系统》 在当今数字化时代,电商平台已经成为商业运营的重要组成部分。本项目“基于Spring-boot和bootstrap搭建的商城系统”旨在利用先进的技术栈,为商家提供一个高效、...

    基于spring boot的体育场馆设施预约系统lw+ppt.rar

    《基于Spring Boot的体育场馆设施预约系统》 在现代体育活动中,有效的场馆设施管理与预约是确保活动顺利进行的关键。本系统以Spring Boot为核心技术,构建了一套完整的体育场馆设施预约解决方案,旨在优化场馆资源...

    spring-boot实战PDF 完整版和随书源码.7z

    6. Spring Initializr:在线工具或命令行工具,用于快速创建基于Spring Boot的新项目。 在《Spring Boot实战》这本书中,作者会详细讲解如何使用Spring Boot创建RESTful服务、数据库访问、集成WebSocket、安全控制...

    基于Spring Boot的CMS内容管理系统项目的实习心得.zip

    在实习期间,我参与了一个基于Spring Boot的CMS(内容管理系统)项目,这是一次非常宝贵的学习和实践经历。本文将详细分享我在项目中所学习到的关键知识点,以及Spring Boot如何帮助构建高效、稳定的CMS系统。 首先...

    spring boot发送QQ邮件

    在Spring Boot中实现邮件发送功能,尤其是QQ邮箱的邮件服务,是一个常见的需求,常用于发送通知、验证码或者系统消息等。本篇文章将详细讲解如何在Spring Boot应用中设置并使用QQ邮箱服务来发送邮件。 首先,我们...

Global site tag (gtag.js) - Google Analytics