X112138_ 2023-04-25 12:31 采纳率: 0%
浏览 95

springboot MimeMessage依赖问题

​在仿做一个社区的邮件传送板块的时候,发现了一个邮件依赖版本更新的问题导致我的邮件发送功能无法使用,我的springboot版本配置为

img

简单直接注入JavaMailSender的时候,之后使用MimeMessageHelper传递messege在使用1.6.7版本以下的时候,是可以正常导入

javax.mail.mimemessage

但是不知道是因为什么版本问题导致控制台输出

“找不到jakarta.mail.internet.MimeMessage的类文件”

这样的错误,于是看了一下

img

createMimeMessage()已经变成

jakarta.mail.internet.MimeMessage

默认方法了,于是导入了jakarta 1.6.7版本以上的依赖,上面MimeMessage已经不会爆红了,但是最后输出控制台还是会报错,部分控制台错误

img

img

这是我的mailclient代码以及Test方法:

package com.example.community.util;


import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;




@Component
public class MailClient {
    private static final Logger logger= LoggerFactory.getLogger(MailClient.class);
    @Autowired
    private JavaMailSenderImpl MailSender;
    @Value("${spring.mail.username}")
    private String from;
    public void sendMail(String to,String subject,String content){
        try {
            MimeMessage message=MailSender.createMimeMessage();
        MimeMessageHelper helper=new MimeMessageHelper(message);

            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(content,true);
            MailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
            logger.error("发送邮件失败:"+e.getMessage());
        }
    }
}

package com.example.community;

import com.example.community.util.MailClient;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.test.context.ContextConfiguration;
import org.thymeleaf.TemplateEngine;

@SpringBootTest
public class MailTests {
    @Autowired
    private MailClient mailClient;

    @Test
    public void TestTextMail(){
//xxx我是写了具体邮箱的
        mailClient.sendMail("xxx@qq.com","Test","welcome.");

    }
}

正在尝试解决问题

  • 写回答

1条回答 默认 最新

  • 夜郎king 2022博客之星IT其它领域TOP 12 2023-04-26 08:01
    关注

    将版本固定在可以用的版本,谨慎升级,有一些确实容易有问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月25日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境