首页 > 编程语言 >SpringBoot整合JavaMail

SpringBoot整合JavaMail

时间:2023-02-08 22:24:57浏览次数:42  
标签:SpringBoot org springframework private JavaMail 整合 import mail String

1、发送简单邮件

导入依赖
implementation 'org.springframework.boot:spring-boot-starter-mail:3.0.2'
开启相关协议,获取密码~ 我是用的是QQ邮箱,其他的也一样

image

配置一下mail的相关信息
spring.mail.username=你的[email protected]
spring.mail.password=你的密码
spring.mail.host=smtp.qq.com
# 接收人的邮箱
[email protected]
编写发送代码
package com.qbb.mail;

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.stereotype.Component;

/**
 * @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
 * @date 2023-02-08  21:34
 * @tags 喜欢就去努力的争取
 */

@Component
public class SendMail {

    @Autowired
    private JavaMailSender javaMailSender;

    @Value("${spring.mail.username}")
    private String sender;
    @Value("${mail.receiver}")
    private String receiver;
    private String title = "SpringBoot发送邮件";
    private String body = "你好呀,我的宝宝~";

    public void send() {
        SimpleMailMessage mimeMessages = new SimpleMailMessage();
        /**
         * 需要传递四个信息
         * 1、发送人
         * 2、接收人
         * 3、标题
         * 4、主体信息
         */
        mimeMessages.setFrom(sender+("哈哈哈"));
        mimeMessages.setTo(receiver);
        mimeMessages.setSubject(title);
        mimeMessages.setText(body);

        javaMailSender.send(mimeMessages);

        System.out.println("send ......");
    }

}

image

2、发送复杂邮件(图片、附件...)

其实就是换一个高级点的对象

package com.qbb.mail;

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

import java.io.File;

/**
 * @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
 * @date 2023-02-08  21:53
 * @tags 喜欢就去努力的争取
 */
@Component
public class SendComplexMail {

    @Autowired
    private JavaMailSender javaMailSender;

    @Value("${spring.mail.username}")
    private String sender;
    @Value("${mail.receiver}")
    private String receiver;
    private String title = "SpringBoot发送复杂邮件";
    //private String body = "你好呀,我的宝宝,我用代码给我发消息 。 <a href='https://www.baidu.com'>点开有惊喜</a>";
    private String body = "你好呀,我的宝宝,我用代码给我发消息 。 <img src='https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1028%2Fba8af181j00r1nr5e002lc000hs011xc.jpg&thumbnail=660x2147483647&quality=80&type=jpg'/>";

    public void send() {
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            /**
             * 需要传递四个信息
             * 1、发送人
             * 2、接收人
             * 3、标题
             * 4、主体信息
             */
            //MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
            // 第二个参数,开启发送附件
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
            helper.setFrom(sender);
            helper.setTo(receiver);
            helper.setSubject(title);
            // 第二个参数,用于开启解析html标签
            helper.setText(body, true);

            // 发送附件
            File f1 = new File("E:\\JavaProject\\study_project\\springboot-javamail\\build\\libs\\springboot-javamail-0.0.1-SNAPSHOT-plain.jar");
            File f2 = new File("E:\\JavaProject\\study_project\\springboot-javamail\\src\\main\\resources\\static\\avatar.ico");
            helper.addAttachment(f1.getName(), f1);
            helper.addAttachment("avatar.jpg", f2);

            javaMailSender.send(mimeMessage);

            System.out.println("send ......");
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }

}

image

标签:SpringBoot,org,springframework,private,JavaMail,整合,import,mail,String
From: https://www.cnblogs.com/qbbit/p/17103532.html

相关文章

  • SpringBoot整合简单的定时任务~
    定时任务框架很多种Quartz,SpringTask,xxljob,PowerJob...1、JDK提供的timer//JDK提供的Timertimer=newTimer();//timer.schedule(newTimerTask......
  • springboot 动态获取配置信息完成启动
    架构说设计到数据量较大的应用要从k8s中迁出单独机器部署于是将8节点的服务准备迁出,且端口号在数据库中保存在不引入springcloud的方式下启动spring容器中对args进行配......
  • 完整工作流整合方案,自定义配置,Java+Vue+Activiti@附配套文档
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot......
  • SpringBoot工程入门case
    SpringBoot的设计目的是用来简化Spring应用的初始搭建以及开发过程。SpringBoot入门案例:1、创建一个新module  2、除pom和src文件剩余都删除。  3、在src.com......
  • springboot开发日记(7)
    springboot——自动配置在日记(2)中提到过,@SpringBootApplication由以下三个注解组合而成:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan1.@Spr......
  • SpringBoot
    SpringBoot文章来源于:雷神:https://www.bilibili.com/video/BV19K4y1L7MT/?spm_id_from=333.337.search-card.all.click&vd_source=a9bff059910348f08db3690eefbeacbe特点......
  • 【Elasticsearch】整合Spring Data Elasticsearch
    整合SpringDataElasticsearch如何查看官方文档(了解)官方文档:​​JavaHighLevelRESTClient|JavaRESTClient[6.8]|Elastic​​下面是获得文档的方式(可以不用看):步......
  • Springboot整合AOP和注解,实现丰富的切面功能
    简介我们在文章《SpringAOP与AspectJ的对比及应用》介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便。为了简便,我们还是来实现一个计时的功......
  • SpringBoot动态生成接口
    原文链接:https://blog.csdn.net/lmchhh/article/details/128634606文章目录SpringBoot动态生成接口一,简单例子二,各种请求方法以及条件2.1无参GET方法2.2带1参的......
  • SpringBoot实现电子文件签字+合同系统
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......