解决:javax.mail.internet.ParseException: In Content-Type string <null>, expected MIME type, got null

一·问题描述:

1.调用发送邮件接口,只有在携带附件时才会发送邮件成功

2.若只发送纯文体邮件,就会报这个异常

3.调用接口代码,以及相关报错提示如下图所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二·问题原因:

1.调用邮件接口,发送只有纯文本无附件的邮件时,仍然向接口里面传递了附件参数,却没有携带附件数据

在这里插入图片描述

2.这样就导致springboot框架邮件发送接口里面,生成了一个multipartFile对象,只不过该对象里面携带的文件数据全部为空,文件数据对应的Content-Type自然也是为空。javaMailSenderImpl对象调用send方法,底层保存邮件信息封装附件时,获取不到文件的Content-Type值,就会报这个如图异常

在这里插入图片描述

3.根本原因:向邮件对象MimeMessage对象里面加入了空数据源的附件对象导致

三·解决办法:

方式一:若发送邮件无需附件时,调用接口就不要携带附件空参数

在这里插入图片描述

在这里插入图片描述

方式二:优化代码,只有附件字节数大于0,才允许往邮件里面执行添加附件操作,这样即使携带附件空参数也不会报异常。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48033662/article/details/134724243