SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.17 发送多部件邮件

news2025/1/11 13:57:32

SpringBoot

【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】

SpringBoot 开发实用篇

文章目录

      • SpringBoot
      • SpringBoot 开发实用篇
      • 5 整合第三方技术
        • 5.17 发送多部件邮件
          • 5.17.1 发送多部件邮件
          • 5.17.2 添加附件
          • 5.17.3 小结

5 整合第三方技术

5.17 发送多部件邮件

5.17.1 发送多部件邮件

之前咱们已经完成 了简单邮件的发送

在这里插入图片描述

在这里插入图片描述

现在我们来玩儿点儿花的

修改发送邮件的实现类

package com.dingjiaxiong.service.impl;

import com.dingjiaxiong.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

/**
 * ClassName: SendMailServiveImpl
 * date: 2022/10/22 14:44
 *
 * @author DingJiaxiong
 */

@Service
public class SendMailServiceImpl implements SendMailService {

    @Autowired
    private JavaMailSender javaMailSender;

    //发送人
    private String from = "1xxxxxxx2@qq.com";
    //接收人
    private String to = "3xxxxxx1@qq.com";
    //标题
    private String subject = "测试邮件";
    //正文
    private String context = "<a href='https://www.baidu.com'>点开有惊喜</a>";

    @Override
    public void sendMail() {

        try {

            MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message);
            helper.setFrom(from + "(小甜甜)");
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(context,true);

            javaMailSender.send(message);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

直接测试!!!

在这里插入图片描述

发送成功

在这里插入图片描述

看看邮件

在这里插入图片描述

直接点

在这里插入图片描述

在这里插入图片描述

OK, 没毛病【祝福祖国】

这只是写了一个链接,也可以加上图片

随便找一个

在这里插入图片描述

在这里插入图片描述

再次发送

在这里插入图片描述

妙啊

5.17.2 添加附件

先打个jar 包,好家伙,打jar 包的时候又执行了一次

在这里插入图片描述

在这里插入图片描述

把这玩意儿作为附件发送过去

package com.dingjiaxiong.service.impl;

import com.dingjiaxiong.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * ClassName: SendMailServiveImpl
 * date: 2022/10/22 14:44
 *
 * @author DingJiaxiong
 */

@Service
public class SendMailServiceImpl implements SendMailService {

    @Autowired
    private JavaMailSender javaMailSender;

    //发送人
    private String from = "16xxxxxxxx2@qq.com";
    //接收人
    private String to = "30xxxxxxxxx1@qq.com";
    //标题
    private String subject = "测试邮件";
    //正文
    private String context = "<img src='https://img2.baidu.com/it/u=2840805738,99066234&fm=253&fmt=auto&app=138&f=JPEG?w=1037&h=500'/><a href='https://www.baidu.com'>点开有惊喜</a>";

    @Override
    public void sendMail() {

        try {

            MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setFrom(from + "(小甜甜)");
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(context,true);

            //添加附件,直接把这个程序打成jar 包给它发过去
            File f1 = new File("D:\\DingJiaxiong\\IdeaProjects\\SpringBootStudyHeiMa\\springboot\\springboot_23_mail\\target\\springboot_23_mail-0.0.1-SNAPSHOT.jar");
            //再添加一张图片
            File f2 = new File("D:\\DingJiaxiong\\IdeaProjects\\SpringBootStudyHeiMa\\springboot\\springboot_23_mail\\src\\main\\resources\\test.png");

            helper.addAttachment(f1.getName(),f1);
            helper.addAttachment("我们一定能够成为我们想要成为的人.png",f2);

            javaMailSender.send(message);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

直接测试!!!

在这里插入图片描述

OK,发送成功了,看看

在这里插入图片描述

就是这样

如果更换了邮箱服务,一定要在配置中修改【同样的需要去申请一个“密码”】

OK

回顾一下

  • 附件与HTML文本支持

在这里插入图片描述

5.17.3 小结
  1. SpringBoot整合JavaMail发送邮件技巧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python脚本之并发执行加密方法【一】

本文为博主原创&#xff0c;未经授权&#xff0c;严禁转载及使用。 本文链接&#xff1a;https://blog.csdn.net/zyooooxie/article/details/125650427 之前写过一篇 JMeter性能测试之参数加密【一】&#xff0c;现在把后面的补上。实际第一篇就写完了 JMeter压测遇到加密接口…

Java Class11

Java Class11 集合 概念 集合是用于存储对象的工具类容器&#xff0c;实现了常用的数据结构&#xff0c;提供了一系列公开的方法用于删除、修改、查找和遍历数据&#xff0c;降低了日常开发成本。 三种集合 Set set集合中元素是无序、不可重复的 List list集合中元素是从前到…

公众号免费搜题功能搭建

公众号免费搜题功能搭建 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

基于C语言实现进度条 | 附源码

进度条的应用在软件中无处不在&#xff0c;拷贝一个文件需要一个进度条&#xff0c;加载一个文件也需要一个进度条&#xff0c;来标志完成与否。 那么 &#xff0c;一个进度条有哪些元素呢&#xff1a; 一个不断向右生长的容器&#xff08;直观的看出当前的进度&#xff09; …

Spring的循环依赖问题

Spring中循环依赖场景有&#xff1a; 构造器的循环依赖&#xff08;构造器注⼊&#xff09; Field 属性的循环依赖&#xff08;set注⼊&#xff09; 各场景下循环依赖解决的情况 单例 bean 构造器参数循环依赖&#xff08;⽆法解决&#xff09; 构造器在Bean的生命周期中实例…

GitHub最新发布,阿里十年架构师手写版spring全家桶笔记全新开源

嗨咯&#xff0c;大家好&#xff01; 没错&#xff0c;又是我&#xff0c;还跟前面一样&#xff0c;有好东西我才会出现。那是什么好东西呢&#xff1f;今天啊&#xff0c;给他分享阿里在Github最新发布的spring全家桶笔记第九版&#xff0c;这份笔记一共分三份&#xff1a;sp…

G1垃圾回收器

概述 官网 https://docs.oracle.com/en/java/javase/16/gctuning/garbage-first-g1-garbage-collector1.html#GUID-ED3AB6D3-FD9B-4447-9EDF-983ED2F7A573 简介 G1垃圾回收器可以同时回收新生代和老年代的对象&#xff0c;不需要两个垃圾回收器配合起来运作&#xff0c;他一…

高项 进度管理论文

七个过程&#xff1a; 项目进度管理包括为管理项目按时完成所需的7个过程&#xff0c;具体为&#xff1a; &#xff08;1&#xff09;规划进度管理&#xff1a;为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档过程。 &#xff08;2&#xff09;定义活动&…

【C语言】初阶指针的简单使用 _指针运算 指针和数组的关系[初阶篇 _学习专用]

1.指针是什么&#xff1f; 在学习指针的时候&#xff0c;我们经常会看到下面这段代码&#xff1a; int main() {int a 10;int* pa &a;*pa 20; } 之前并没有接触过指针的朋友们看到后可能是一头雾水&#xff0c;根本不知道从哪里去理解&#xff1b;下面我们就通过一些…

STM32开发时HardFault错误的排查

STM32开发时HardFault错误的排查 本篇是 嵌入式开发-STM32硬件I2C驱动OLED屏 一文的扩展。 把相关的问题记录一下&#xff0c;给遇到HardFault_Handler问题的朋友做个参考。 故障现象 做STM32开发&#xff0c;经常遇到HardFault错误&#xff0c;也就是程序不会正常运行&…

WPF动画(2)

动画的生命周期 从技术的角度看&#xff0c;WPF动画只是暂时的&#xff0c;这意味着它们不能真正改变基本属性的 值&#xff0c;当动画处于活动状态时&#xff0c;只是覆盖了属性的值 。 单向动画&#xff0c;在动画运行结束后会保持处于活动状态&#xff0c;这是因为动画需要…

(十一)手写简单的Spring框架

文章目录第一步&#xff1a;搭建环境第二步&#xff1a;准备好要管理的Bean第三步&#xff1a;准备myspring.xml配置文件第四步&#xff1a;编写MyApplicationContext接口第五步&#xff1a;编写MyClassPathXmlApplicationContext第六步&#xff1a;采用Map集合存储Bean第七步&…

第十一章 Golang面向对象编程(下)

面向对象编程三大特性 基本介绍 Golang仍然有面向对象编程的继承&#xff0c;封装和多态的特性&#xff0c;只是实现的方式和其他OOP语言不一样。 封装 面向对象编程思想-抽象 我们在前面去定义一个结构体的时候&#xff0c;实际上就是把一类事物共有的属性&#xff08;字段…

Presto 之 explain and explain analyze的实现

一. 前言 本文主要探索在Presto中Explain功能是如何实现的。在Presto中&#xff0c;Explain用法有两种&#xff0c;一种是单纯的explain&#xff0c;此场景只会显示经过RBO优化后的执行计划&#xff0c;但是查询并不会真正地执行。第二种是explain analyze&#xff0c;此场景会…

JVM常用参数

JVM内存相关的几个核心参数 -Xms&#xff1a;Java堆内存初始大小-Xmx&#xff1a;Java堆内存的最大大小-Xmn&#xff1a;Java堆内存中的新生代大小&#xff0c;扣除新生代剩下的就是老年代的内存大小了-XX:PermSize&#xff1a;永久代大小-XX:MaxPermSize&#xff1a;永久代最…

疾控物资管理系统-疾控中心物资管理系统

一、系统概述 东识科技&#xff08;DONWIT&#xff09;疾控中心物资管理系统&#xff08;智物资DW-S300&#xff09;是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 随着疫情的突…

(STM32)从零开始的RT-Thread之旅--GPIO

上一篇&#xff1a; (STM32)从零开始的RT-Thread之旅--基础项目构建与时钟配置 无论什么开发板&#xff0c;最先调试的肯定是GPIO&#xff0c;一般用来用作指示灯或者按键输入。本篇只是很简单的GPIO应用&#xff0c;没有具体分析RTT框架实现。 首先先创建一个BSP文件夹&…

机器人操作系统ROS(21) jetson nano安装torch tensorflow

安装torch、tensorflow其实跟普通在Linux系统安装没有区别&#xff0c;但是Linux是arch64位的&#xff0c;而jetson是aarch64位的&#xff0c;所以还是不太一样。 另外一个坑是&#xff1a;购买的创乐博的机器人&#xff0c;已经安装ros&#xff0c;但是安装torh的时候需要apt …

使用Spring实现工厂+策略模式

使用Spring实现工厂策略模式 这里使用发短信业务&#xff1a; 不同短信有不同模板但是发送方法都相同只是发送内同不同 1. 定义短信发送策略接口&#xff1a; //策略接口 public interface SmsTemStrategy {public void sendSms(Map<String,String> params); }2.短信…

【Python】Numpy傅里叶变换总结

文章目录简介fft简介 Fourier变换极其逆变换在数学上的定义如下 F(ω)∫−∞∞f(t)e−iωtdtf(t)π2∫−∞∞F(ω)eiωtdωF(\omega)\int^\infty_{-\infty}f(t)e^{-i\omega t}\text dt\\ f(t)\frac{\pi}{2}\int^\infty_{-\infty}F(\omega)e^{i\omega t}\text d\omega F(ω)∫−…