在JavaSpringMVC中发送电子邮件

在JavaSpringMVC中发送电子邮件,java,spring,jakarta-mail,Java,Spring,Jakarta Mail,我在spring webapp中发送电子邮件时遇到问题。我正在使用SpringMVC 我有邮件配置类: @Configuration class MailConfig { @Bean(name="mailSender") public MailSender javaMailService() { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSende

我在spring webapp中发送电子邮件时遇到问题。我正在使用SpringMVC

我有邮件配置类:

@Configuration
class MailConfig {

     @Bean(name="mailSender")
    public MailSender javaMailService() {
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.gmail.com");
        javaMailSender.setPort(587);
        javaMailSender.setProtocol("smtp");
        javaMailSender.setUsername("email@gmail.com");
        javaMailSender.setPassword("password");
        Properties mailProperties = new Properties();
        mailProperties.put("mail.smtp.auth", "true");
        mailProperties.put("mail.smtp.starttls.enable", "starttls");
        mailProperties.put("mail.smtp.debug", "true");
        javaMailSender.setJavaMailProperties(mailProperties);
        return javaMailSender;
    }

}
在控制器中,我有一个自动连线的
mailssender
实例,我发送的电子邮件如下:

@Autowired
MailSender mailSender;

@RequestMapping(path="emailTest", method = {RequestMethod.GET})
    public void emailTest(){

        SimpleMailMessage smm = new SimpleMailMessage();

        smm.setFrom("email@gmail.com");
        smm.setTo("email@gmail.com");
        smm.setSubject("title");
        smm.setText("text");

        mailSender.send(smm);

    }
当我尝试发送时,我得到

HTTP Status 500 - Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/sun/mail/util/MessageRemovedIOException

请验证,您是否添加了
mail.jar
请验证,您是否添加了
mail.jar
您还应该在类路径上添加
mail.jar
。您可以找到参考。

在类路径上还应该有
mail.jar
。您可以找到引用。

我想添加依赖项可以解决您的问题。@SergeyProkofiev谢谢,确实解决了,但现在我得到了
SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令。a69sm529238wme.29-gsmtp
我想添加依赖项可以解决您的问题。@SergeyProkofiev谢谢,它解决了,但现在我得到了
SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令。a69sm529238wme.29-gsmtp
谢谢,这很有帮助,但现在我明白了:
SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令。a69sm529238wme.29-gsmtp
请参阅。谢谢,这很有帮助,但现在我了解到:
SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令。a69sm529238wme.29-gsmtp
请参阅。