spring发送邮件收到方显示为无主题,内容和附件都显示不正常

1.前情提示

关于怎么在spring中集成发送邮件,不是本文重点==
无论是简单的文本格式还是html格式,还是velocityEngine模板,集成起来都不是很难。本文旨在记录一个BUG,当你完全正确集成,且邮件发送成功之后,然后打开邮箱发现收到的邮件都是显示:无主题,且内容和附件都是一串不怎么能看懂的数字,像_Part_0_29689095.1456985235625…,截图如下:
这里写图片描述

2.解决办法

根本原因是jar包冲突,不要再怀疑其他了,就是你的jar有问题!可以尝试在pom.xml中引入如下:

<dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.4.4</version>
</dependency>

标准的javax.mail包,即可保证邮件正常。

此处注意,如果在javax.mail依赖之前,有其他的依赖,且其他的依赖中包含有javax.mail包,由于maven中包的索引是按照顺序执行,所以此处标准的javax.mail会不起作用,仍然会造成邮件无主题且内容乱码。
例如我的工程中就引入过org.apache.openjb包,由于此包中包含了javax.mail,导致标准的mail包失效,同样导致本文上述错误的发生,排查半天,才发现发送邮件的代码中的MimeMessage类在点击查看源码时索引的居然不是javax.mail类的源码,而是org.apache.openjb类的源码,由此发现了问题==,解决办法是把javax.mail移动到前面或者把org.apache.openjb删除。

解决jar包冲突之后,邮件即可正常,截图如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值