java mail中文乱码彻底解决

1 篇文章 0 订阅
1 篇文章 0 订阅

折腾了好久,终于把javamail的中文乱码搞定,网上都内容基本抄来抄去,没一个讲到重点,后面受一篇base64encoder的文章启发,终于把java mail的中文乱码搞定,其中java mail使用的是apache的common mail,具体解决方案如下,有两种解决方案:

解决方案一:

 

 public void send() throws Exception {

        SimpleEmail email = new SimpleEmail();


        email.setHostName //省略
        email.setFrom //省略
        email.addTo //省略


        email.setSubject("=?UTF-8 ?b?" + enc.encode("邮件标题".getBytes()) + "?=");

        email().setCharset("UTF-8 "); 
        email().setMsg(new String("邮件正文".getBytes("iso-8859-1 "), "UTF-8 "));

//上面这一行,有时并不需要做编码转换,也就说直接使用"邮件正文"作为参数即可,至于需不需要转换,则需要尝试

        email().send();
    }

 

解决方案二(无需调用setCharset方法):

 

public void send() throws Exception {

        SimpleEmail email = new SimpleEmail();


        email.setHostName //省略
        email.setFrom //省略
        email.addTo //省略;
      

        email.setSubject("=?UTF-8 ?b?" + enc.encode("邮件标题".getBytes()) + "?=");  

        email.setContent(new String("邮件正文".getBytes("iso-8859-1 "), ”UTF-8 "), "text/plain;charset=UTF-8 ");

//上面这一行,有时并不需要做编码转换,也就说直接使用"邮件正文"作为参数即可,至于需不需要转换,则需要尝试

        email.send();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值