最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot mail中文附件亂碼的解決方法

 更新時(shí)間:2017年09月26日 16:42:41   作者:小柒  
本篇文章主要介紹了SpringBoot mail中文附件亂碼的解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

前一段時(shí)間做過一個(gè)郵件發(fā)送的服務(wù),以前大體都測試過,文本、圖片、附件都是沒有問題的,可有同事反應(yīng)發(fā)送的附件名稱有中文亂碼,類似如下截圖展示:

咋一看不像亂碼,抱著試試看的態(tài)度,為MimeMessageHelper硬性加了編碼:

helper.addAttachment(MimeUtility.encodeText(fileName), file);

并且對(duì)文件名稱加了轉(zhuǎn)碼:

MimeUtility.encodeText(attachmentFilename)

但是,如果你跟進(jìn)源碼會(huì)發(fā)現(xiàn)spring已經(jīng)為你做了轉(zhuǎn)碼工作,所以這個(gè)問題不存在的。

繼續(xù)跟進(jìn)MimeBodyPart類,發(fā)現(xiàn)setFileName方法中有個(gè)ParameterList類,點(diǎn)擊繼續(xù)跟進(jìn)ParameterList類,里面的toString方法:

if ((value.length() > 60) && (splitLongParameters)
            && (encodeParameters)) {
          int seg = 0;
          name = name + "*";
          while (value.length() > 60) {
            sb.addNV(name + seg, quote(value.substring(0, 60)));
            value = value.substring(60);
            ++seg;
          }
          if (value.length() > 0)
            sb.addNV(name + seg, quote(value));
        } else {
          sb.addNV(name, quote(value));
        }

上面這段代碼的邏輯,大家應(yīng)該可以很清晰的理解了吧,大家可以發(fā)現(xiàn)如果value.length() > 60 并且 splitLongParameters?哎,問題來了,splitLongParameters到底是個(gè)什么值,我們查找splitLongParameters,發(fā)現(xiàn)了其在類開頭已經(jīng)定義了

private static final boolean splitLongParameters = PropUtil
      .getBooleanSystemProperty("mail.mime.splitlongparameters", true);

大致意思就是,編碼后的文件名長度如果大于60并且splitLongParameters的值為true,encodeParameters的值為true,文件名就會(huì)被截取,想想編碼后的值被截取是什么樣子?也只能是文章開頭截圖的顯示了。

最終的解決方案就是,在發(fā)送的時(shí)候初始化splitLongParameters為false不截?。?/p>

static {
     System.setProperty("mail.mime.splitlongparameters","false");
  }

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java超詳細(xì)教你寫一個(gè)斗地主洗牌發(fā)牌系統(tǒng)

    Java超詳細(xì)教你寫一個(gè)斗地主洗牌發(fā)牌系統(tǒng)

    這篇文章主要介紹了怎么用Java來你寫一個(gè)斗地主種洗牌和發(fā)牌的功能,斗地主相信大家都知道,同時(shí)也知道每一局都要洗牌打亂順序再發(fā)牌,本篇我們就來實(shí)現(xiàn)這個(gè)功能,感興趣的朋友跟隨文章往下看看吧
    2022-03-03
  • springmvc path請(qǐng)求映射到bean 方法的流程

    springmvc path請(qǐng)求映射到bean 方法的流程

    這篇文章主要介紹了springmvc path請(qǐng)求映射到bean 方法的流程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • java代理模式(jdk proxy)

    java代理模式(jdk proxy)

    代理(Proxy)是一種設(shè)計(jì)模式,提供了對(duì)目標(biāo)對(duì)象另外的訪問方式;這篇文章主要介紹了Java 中的三種代理模式,需要的朋友可以參考下,希望能幫助到你
    2021-07-07
  • JavaWeb開發(fā)使用Cookie創(chuàng)建-獲取-持久化、自動(dòng)登錄、購物記錄、作用路徑

    JavaWeb開發(fā)使用Cookie創(chuàng)建-獲取-持久化、自動(dòng)登錄、購物記錄、作用路徑

    這篇文章主要介紹了JavaWeb開發(fā)使用Cookie創(chuàng)建-獲取-持久化、自動(dòng)登錄、購物記錄、作用路徑的相關(guān)知識(shí),非常不錯(cuò),對(duì)cookie持久化知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • Java如何使用流去除集合中某個(gè)字段為空的對(duì)象

    Java如何使用流去除集合中某個(gè)字段為空的對(duì)象

    這篇文章主要給大家介紹了關(guān)于Java如何使用流去除集合中某個(gè)字段為空的對(duì)象,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述

    Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述

    這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下
    2015-07-07
  • Quarkus中filter過濾器跨域cors問題解決方案

    Quarkus中filter過濾器跨域cors問題解決方案

    這篇文章主要為大家介紹了Quarkus中filter過濾器跨域cors問題的解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • 利用stream sorted進(jìn)行降序排序

    利用stream sorted進(jìn)行降序排序

    這篇文章主要介紹了利用stream sorted進(jìn)行降序排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 圖文淺析Java序列化和反序列化

    圖文淺析Java序列化和反序列化

    序列化(Serialization)是將對(duì)象的狀態(tài)信息轉(zhuǎn)化為可以存儲(chǔ)或者傳輸?shù)男问降倪^程,下面這篇文章主要給大家介紹了關(guān)于Java序列化和反序列化的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • Springboot自動(dòng)掃描包路徑來龍去脈示例詳解

    Springboot自動(dòng)掃描包路徑來龍去脈示例詳解

    這篇文章主要介紹了Springboot自動(dòng)掃描包路徑來龍去脈示例詳解,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論

清远市| 涞水县| 肇庆市| 昆明市| 贞丰县| 凤凰县| 闽侯县| 正蓝旗| 西宁市| 白水县| 鄂州市| 辽中县| 孟村| 山西省| 莱阳市| 甘南县| 财经| 那坡县| 尚义县| 安仁县| 玉门市| 沾化县| 武功县| 延吉市| 蓝田县| 淳安县| 大邑县| 疏附县| 本溪| 西乌珠穆沁旗| 班戈县| 宁河县| 长岭县| 舒城县| 沁阳市| 建始县| 北海市| 教育| 汉中市| 阳信县| 隆昌县|