产生情景
今天学习JavaMail,但是运行时候却抛出java.io.IOException: No MimeMessage content
错误
网上也有搜集解决方案,说是配置没有配对,下图为application.yml
对应配置
spring:
mail:
host: smtp.qq.com
# 邮箱账号
username: xxxx@qq.com
# 授权码
password: xxxx
protocol: smtp
properties:
mail:
smtp:
ssl:
enable: true
required: false
debug: true
也有说maven版本导入错误,我的是maven配置为
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
感觉很奇怪,我也打了断点,对应的JavaMailSender
和SimpleMailMessage
都注入了值
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.annotation.Resource;
@SpringBootTest
class DemoApplicationTests {
@Resource
JavaMailSender mailSender;
@Test
void contextLoads() {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("通知");
mailMessage.setSubject("正文");
mailMessage.setTo("2235809286@qq.com");
mailMessage.setFrom("2292600704@qq.com");
System.out.println(mailMessage);
System.out.println(mailSender);
mailSender.send(mailMessage);
}
}
解决方案
经过反复测试,发现发送邮件内容必须填写,即需要设置mailMessage.setText();
,代码添加后邮件发送成功!