前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手拉手SpringBoot3+mail实现发送QQ邮箱

手拉手SpringBoot3+mail实现发送QQ邮箱

原创
作者头像
QGS
发布2024-02-05 21:02:35
1310
发布2024-02-05 21:02:35
举报
文章被收录于专栏:QGS探索QGS探索

技术栈

springboot+mybatis-plus+mysql

软件

版本

IDEA

IntelliJ IDEA 2022.2.1

JDK

17

Spring Boot

3.1

mybatis-plus

3.5

spring-boot-starter-mail

Springboot版本

spring-boot-starter-mail:

Spring框架提供了一个有用的实用程序库,用于发送电子邮件,使您免受底层邮件系统的限制,并负责代表客户端进行低级资源处理。

该org.springframework.mail软件包是Spring框架的电子邮件支持的根级软件包。用于发送电子邮件的中央界面是该MailSender 界面。封装了简单邮件(例如from和to,以及许多其他邮件)的属性的简单值对象是SimpleMailMessage类。此程序包还包含一个已检查异常的层次结构,该层次结构提供了比较低级别的邮件系统异常更高的抽象级别,根异常为 MailException。

一、QQ邮箱开通开通第三方登入服务

QQ邮箱开通第三方登入服务

POP3/IMAP/SMTP/Exchange/CardDAV 服务已开启

在第三方客户端登录时,密码框请输入以下授权码:

xxxxxxxxxxxxxxxx

pom.xml加入依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>

application.yml配置

代码语言:java
复制
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mysql?createDatabaseIfNotExist=true&autoReconnect=true&default-character-set=utf8&&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

  mail:
 # 下面这个是QQ邮箱host , 企业邮箱 smtp.exmail.qq.com
 host: smtp.qq.com
 # tencent mail port  这个是固定的
 port: 465
 # 你的QQ邮箱
 username: xxxxxxxqq.com
 # 进入邮箱配置后得到的授权码
 password: xxxxxxxxxxx
    test-connection: true
    properties:
      mail:
        smtp:
          ssl:
            enable: true

编写Mail工具类

代码语言:java
复制
package com.example.util;

import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;


import java.io.File;
@Component
public class SendMailUtils {
    @Autowired
    JavaMailSenderImpl javaMailSender;

    //发送普通文字邮件
    public  void sendText(String Subject, String Text, String setFrom, String setTo) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject(Subject);//标题
        simpleMailMessage.setText(Text);//内容
        simpleMailMessage.setFrom(setFrom);//发送人邮箱
        simpleMailMessage.setTo(setTo);//发送目的地邮箱
        javaMailSender.send(simpleMailMessage);
    }

    //发送带页面格式加文件邮件
    public  void sendTexts(String Subject, String Text,Boolean t, String setFrom, String setTo
            ,String attachmentFilename,String filePathName) throws MessagingException {
        MimeMessage mimeMessage=javaMailSender.createMimeMessage();
        MimeMessageHelper helper=new MimeMessageHelper(mimeMessage,true);
        helper.setSubject(Subject);//标题
        helper.setText(Text,t);//内容
        helper.setFrom(setFrom);//发送人邮箱
        helper.setTo(setTo);//目的地邮箱
        helper.addAttachment(attachmentFilename,new File(filePathName));  //图片路径
        javaMailSender.send(mimeMessage);
    }


}

controller调用SendMailUtils工具类

代码语言:java
复制
@Autowired
SendMailUtils sendMailUtils;

@GetMapping("/sendMail")
public String sendMail(){
    if (msg.isEmpty()){
        String msg ="无告警信息";
    }
    sendMailUtils.sendText("Cpu使用率",msg,
            " xxxx@qq.com","xxxx@qq.com");
    return "ok";
}

@GetMapping("/sendMails")
public String sendMails(){
    try {
        sendMailUtils.sendTexts("发送带页面格式加文件邮件测试","<p style='color:red;'>红</p>",true, " xxxx@qq.com",
                " xxxx@qq.com","redis图标","C:\\Users\\Administrator\\Desktop\\redis.png");
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
    return "ok";
}

发送效果

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、QQ邮箱开通开通第三方登入服务
    • pom.xml加入依赖
    • application.yml配置
    • 编写Mail工具类
    • controller调用SendMailUtils工具类
    相关产品与服务
    腾讯企业邮
    腾讯企业邮(Tencent Exmail)是腾讯基于多年海量用户邮件系统研发和运营经验,为企业量身订造的一套办公用邮箱系统。稳定、简洁和快速,整合了丰富的企业应用,涵盖资源共享、消息发布、组织管理等方面。腾讯企业邮和微信生态深度整合,为您提供便捷高效的移动邮件解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档