解决java发送邮件无主题且邮件内容乱码问题

25 篇文章 0 订阅

 

BUG描述:本地测试,正常发送邮件。部署到linux服务器后,发送邮件无主题,无收件人,正文中是乱码(准确说是QP编码)。

本以为 是服务器编码问题,各种设置编码,都不行,最终找到了原因,jar包冲突.大家可以看看这篇文章:http://jeyke.iteye.com/blog/1441548 。

我的项目是使用maven引入包的,pom.xml中的配置如下:

<dependency>
    <groupId>org.apache.neethi</groupId>
    <artifactId>neethi</artifactId>
    <!– 排除这个包,不然上线发邮件有问题(与mail.jar有冲突) –>
    <exclusions>
        <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-javamail_1.4_spec</artifactId>
        </exclusion>
    </exclusions>
</dependency>

使用exclusions 排除geronimo-javamail_1.4_spec包,

重新将项目打包提交到服务器,问题解决了。

解决问题时还看到另一篇文章,说的也基本是这个意思。。该文章主要内容如下:
Spring javaMail发送邮件无主题,无收件人,附件显示在正文中而且是乱码的的问题,
程序中显示邮件发送成功,但邮箱收不到邮件,查看debug 邮件处理过程发现邮件头没有编译,
内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
这个问题理困扰我一个多星期,首先以为代码有问题改编码,又改邮箱,再解码结果浪费了很多时间,
因为是在我测试的工程中好用,移到我的正式工程后就不好用了。
最后怀疑和工程中的JAR包有冲突。就一个一个测试,最后发现问题所在,这才是最根本的问题原来工程中有两个包。

geronimo-activation_1.1_spec-1.0.2.jar 
geronimo-javamail_1.4_spec-1.3.jar

这两个包和我测试中工程包有冲突删除就一切OK了。

另外有可能和Myeclipse中安装目录下面的jar包有冲突 删除即可。
位置在:
\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710\data\libraryset\EE_5\javaee.jar
里的javaee.jar 解压出来 将其中的activation.jar和mail.jar文件夹删了 
然后重新导入了javaMail.jar 中的两个包 mail.jar和activation.jar… 此时可以发送邮件!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值