基于Java实现QQ邮箱发送工具类

 更新时间:2023年12月17日 10:52:43   作者:大白猫~  
我们在日常开发中,需要实现一个对邮箱的发送,今天就实现邮箱的发送工具类,只需要一些注册邮箱之后的配置即可,感兴趣的小伙伴可以了解下

我们在日常开发中,需要实现一个对邮箱的发送,今天就实现邮箱的发送工具类,只需要一些注册邮箱之后的配置即可,我这边使用的是qq邮箱

0.加上依赖

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

1.配置yml文件

需要到官网上去注册,链接地址:https://mail.qq.com/

spring:                         # Spring Boot应用程序配置的根节点
   mail:                        # 邮件相关配置
    username:                   # 你自己的QQ邮箱的用户名,需要填写你的QQ邮箱地址
    password:                   # 你自己的QQ邮箱的密钥/密码,需要填写你的QQ邮箱登录密码
    host: smtp.qq.com            # SMTP服务器主机名,这里设置为QQ邮箱的SMTP服务器
    port: 465                   # SMTP服务器端口,通常情况下使用SSL的SMTP协议使用465端口
    protocol: smtp              # 使用SMTP协议发送邮件
 
    properties:                 # 邮件相关的属性配置
      mail:                     # 邮件协议属性配置
        smtp:                   # SMTP协议属性配置
          ssl:                  # SSL/TLS属性配置
            enable: true         # 启用SSL,表示使用加密传输邮件
          auth: true             # 启用SMTP身份验证,需要提供用户名和密码
          starttls:             # STARTTLS属性配置,用于在未加密连接上启用TLS
            enable: true        # 启用STARTTLS
            required: true      # 要求必须使用STARTTLS
          socketFactory:        # Socket工厂属性配置,用于SSL连接
            port: 465           # SSL连接的端口,与SMTP服务器的端口一致
            class: javax.net.ssl.SSLSocketFactory  # 使用的Socket工厂类,通常用于SSL连接
 
# 请确保填写你自己的QQ邮箱地址和密码,以及确保QQ邮箱允许使用SMTP服务来发送邮件

2.写一个发送邮箱工具类

@Component
public class MailUtil {
 
    private static MailUtil INSTANCE = new MailUtil();
 
    @Resource
    JavaMailSender mailSender;
 
    @Resource
    JavaMailSender javaMailSender;
 
    @PostConstruct
    public void init(){
        INSTANCE.mailSender = mailSender;
    }
 
    /**
     * 发送简单邮件
     *
     * @param subject 主题
     * @param content 内容
     * @param from 发件人
     * @param to      收件人
     */
    public void sendSimpleMail(String subject,String content,String from,String[] to){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo(to);
        // 主题
        message.setSubject(subject);
        // 邮件正文
        message.setText(content);
        message.setSentDate(new Date());
        // 发送邮件
        INSTANCE.mailSender.send(message);
    }
    public void sendMimeMail(String subject,String content,String from,String[] to) throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        // 构建一个邮件对象
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        // 设置邮件主题
        helper.setSubject(subject);
        // 设置邮件发送者,这个跟application.yml中设置的要一致
        helper.setFrom(from);
        helper.setTo(to);
        // 设置邮件发送日期
        helper.setSentDate(new Date());
        // 设置邮件的正文 true:是html文件
        helper.setText(content,true);
        // 发送邮件
        javaMailSender.send(mimeMessage);
    }
 
}

3.编写controller控制器接口

@RestController
@Api(tags = "邮箱发送")
@RequestMapping("/mail")
public class MailServlet {
    @Resource
    private MailUtil mailUtil;
 
    @PostMapping("/to")
    @ApiOperation("发送邮件")
    @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "邮件主题"), @ApiImplicitParam(name = "content", value = "邮件内容")
            , @ApiImplicitParam(name = "from", value = "发送邮件的QQ邮箱"), @ApiImplicitParam(name = "to", value = "要发送到的QQ邮箱,用,隔开")})
    public R to(String subject, String content, String from, String to) {
        String[] split = to.split(",");
        try {
            mailUtil.sendSimpleMail(subject, content, from, split);
            return R.ok("发送成功");
        } catch (Exception e) {
            e.fillInStackTrace();
            return R.fail("发送失败");
        }
    }
 
    @PostMapping("/tof")
    @ApiOperation("发送富文本邮件")
    @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "邮件主题"), @ApiImplicitParam(name = "content", value = "邮件内容<html>格式")
            , @ApiImplicitParam(name = "from", value = "发送邮件的QQ邮箱"), @ApiImplicitParam(name = "to", value = "要发送到的QQ邮箱,用,隔开")})
    public R tof(String subject, String content, String from, String to) {
        String[] split = to.split(",");
        try {
            mailUtil.sendMimeMail(subject, content, from, split);
            return R.ok("发送成功");
        } catch (Exception e) {
            e.fillInStackTrace();
            return R.fail("发送失败");
        }
    }
}

以上就是基于Java实现QQ邮箱发送工具类的详细内容,更多关于Java邮箱发送的资料请关注脚本之家其它相关文章!

相关文章

  • Java中用POI实现将数据导出到Excel

    Java中用POI实现将数据导出到Excel

    这篇文章主要介绍了Java中用POI实现将数据导出到Excel,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 浅谈Springboot实现拦截器的两种方式

    浅谈Springboot实现拦截器的两种方式

    本文详细的介绍了Springboot拦截器的两种方式实现,一种就是用拦截器,一种就是过滤器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • SpringBoot同时支持HTTPS与HTTP的实现示例

    SpringBoot同时支持HTTPS与HTTP的实现示例

    本文主要介绍了SpringBoot同时支持HTTPS与HTTP的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 2020 IDEA安装教程与激活(idea2020激活码)

    2020 IDEA安装教程与激活(idea2020激活码)

    这篇文章主要介绍了2020 IDEA安装教程与激活(idea2020激活码),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Springboot pom项目间接依赖包版本与预期不符原因解决分析

    Springboot pom项目间接依赖包版本与预期不符原因解决分析

    这篇文章主要介绍了Springboot pom项目间接依赖包版本与预期不符原因解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • java实现按层遍历二叉树

    java实现按层遍历二叉树

    这篇文章主要为大家详细介绍了java实现按层遍历二叉树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • JavaSE的逻辑控制你了解吗

    JavaSE的逻辑控制你了解吗

    这篇文章主要为大家详细介绍了JavaSE的逻辑控制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • SpringMVC的@InitBinder参数转换代码实例

    SpringMVC的@InitBinder参数转换代码实例

    这篇文章主要介绍了SpringMVC的@InitBinder参数转换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 几个好用Maven镜像仓库地址(小结)

    几个好用Maven镜像仓库地址(小结)

    这篇文章主要介绍了几个好用Maven镜像仓库地址(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • MyBatis自定义resultMap三种映射关系示例详解

    MyBatis自定义resultMap三种映射关系示例详解

    这篇文章主要介绍了MyBatis自定义resultMap三种映射关系,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08

最新评论