首页 > 其他分享 >spring boot 整合邮件功能

spring boot 整合邮件功能

时间:2024-06-15 09:10:42浏览次数:19  
标签:mail spring boot private mailMessage import 邮件 String

检查邮箱的SMTP/ POP3服务是否开通,如果没有开通,先开通 

SMTP/ POP3服务



spring:
# 邮件配置
mail:
# smtp服务主机
host: smtp.163.com / smtp.qq.com
# 服务协议
protocol: smtp
# 编码集
default-encoding: UTF-8
# 允许测试连接
test-connection: true
# 发件人
username: 发送方邮箱
# 授权码
password: 第二步获取的授权码

 

package com.jojo.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
* 邮件对象
*/
@Data
@ApiModel(value = "邮件内容")
public class MailVo implements Serializable {

@ApiModelProperty(value = "是否是html格式")
private boolean isHtml;

@ApiModelProperty(value = "接收者(可以多个)")
private String[] receivers;

@ApiModelProperty(value = "邮件主题")
private String title;

@ApiModelProperty(value = "邮件内容")
private String content;
}

 

 

@Value("${spring.mail.username}")
private String mailSender;

@Value("${spring.mail.password}")
private String mailPwd;

@Bean
public JavaMailSenderImpl JavaMailSender(){
JavaMailSenderImpl Sender = new JavaMailSenderImpl();
Sender.setHost("smtp.qq.com");
Sender.setUsername(mailSender);
Sender.setPassword(mailPwd);
return Sender;
}

 

 

package com.jojo.utils;

import com.jojo.vo.MailVo;
import lombok.extern.slf4j.Slf4j;
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 org.springframework.stereotype.Component;

import javax.mail.internet.MimeMessage;
import java.util.Arrays;

/**
* 发送邮件
*/
@Component
@Slf4j
public class MailUtil {

@Autowired
private JavaMailSender mailSender;

@Value("${spring.mail.username}")
private String sender;

/**
* 发送邮件
* @param mail 邮件内容
* @return
*/
public String sendMail(MailVo mail){
try{
if (mail.isHtml()){
MimeMessage mailMessage = mailSender.createMimeMessage();
// 可以发送文件
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
messageHelper.setFrom(sender);
messageHelper.setTo(mail.getReceivers());
messageHelper.setSubject(mail.getTitle());
messageHelper.setText(mail.getContent(),true);
mailSender.send(mailMessage);
log.info("HTMl格式邮件发送成功!==> 收件人:{}", Arrays.asList(mail.getReceivers()));
} else {
// 创建邮件对象
SimpleMailMessage mailMessage = new SimpleMailMessage();
// 发件人
mailMessage.setFrom(sender);
// 收件人
mailMessage.setTo(mail.getReceivers());
// 邮件主题
mailMessage.setSubject(mail.getTitle());
// 邮件内容
mailMessage.setText(mail.getContent());
mailSender.send(mailMessage);
log.info("普通邮件发送成功!==> 收件人:{}", Arrays.asList(mail.getReceivers()));
}
return "邮件发送成功!";
} catch (Exception e){
log.error("邮件发送失败!==> {}",e.getMessage());
return "邮件发送失败!";
}
}
}

 

@Test
void TestMail(){
MailVo mailVo = new MailVo();
mailVo.setReceivers(new String[]{"[email protected]"});
mailVo.setTitle("邮箱测试");
mailVo.setContent("这是一条测试邮箱");
System.out.println(mailUtil.sendMail(mailVo));
}

 

标签:mail,spring,boot,private,mailMessage,import,邮件,String
From: https://www.cnblogs.com/jingzhi-sksk/p/18248995

相关文章

  • 基于springboot实现交通管理在线服务系统项目【项目源码+论文说明】
    基于springboot实现交通管理在线服务系统演示摘要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用,可以规范信息管理流......
  • 基于springboot实现教学资料管理系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现教学资料管理系统演示摘要使用旧方法对教学资料管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在教学资料管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开......
  • 基于springboot实现入校申报审批系统项目【项目源码+论文说明】计算机毕业设计
    基于springboot实现入校申报审批系统演示摘要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装入校申报审批系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理......
  • springboot基础
    springboot基础1.快速入门https://docs.spring.io/spring-boot/docs/https://docs.spring.io/spring-boot/docs/2.1.10.RELEASE/reference/htmlhttps://developer.aliyun.com/mirror/mave<?xmlversion="1.0"encoding="UTF-8"?><projectxmln......
  • Spring框架的原理及应用详解(一)
    本系列文章简介:        在当今的软件开发世界中,随着应用复杂性的不断增加和技术的快速发展,传统的编程方式已经难以满足快速迭代、高可扩展性和易于维护的需求。为此,开发者们一直在寻求更加高效、灵活且易于管理的开发框架,以帮助他们应对这些挑战。Spring框架就是在这......
  • Spring框架的原理及应用详解(二)
    本系列文章简介:        在当今的软件开发世界中,随着应用复杂性的不断增加和技术的快速发展,传统的编程方式已经难以满足快速迭代、高可扩展性和易于维护的需求。为此,开发者们一直在寻求更加高效、灵活且易于管理的开发框架,以帮助他们应对这些挑战。Spring框架就是在这......
  • 基于SpringBoot+Vue+uniapp微信小程序的垃圾分类系统的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 基于SpringBoot+Vue的学生心理压力咨询评判管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 基于SpringBoot+Vue协同过滤算法的私人诊所管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • springboot+vue+mybatis基于java的物资综合管理系统的设计与实现+PPT+论文+讲解+售后
    如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统物资综合管理系统信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个物资综合管理系......