解决: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,才允许往邮件里面执行添加附件操作,这样即使携带附件空参数也不会报异常。

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ideal-cs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值