1. 程式人生 > >javaMail 傳送郵件 標題過長出現亂碼

javaMail 傳送郵件 標題過長出現亂碼


這裡主要是為大家講解的標題或者附件名稱過長出現亂碼的解決方法: 在傳送郵件的時候 如果標題過長,則會出現亂碼

解決方法是

將傳入的標題分段進行轉碼

例如

傳入的String zt(很長很長的一個String)

這時候 可以吧這個字串進行擷取

 if(zt.length()>12){
		    	 
		    	 for(int i = 0  ; i<=Math.floor(zt.length()/12) ; i++){
		    		 String s="";
		    		 String utfS = "";
		    		
		    		 int j = (int) Math.floor( zt.length()/12);
		    		 if(i==0){
		    			  s = zt.substring(0, 12);
		    			 
		    			  utfS = new String(base64.encode(s.getBytes("UTF-8")));
		    		 }else{
		    			 if(i==j){
		    				  	s = zt.substring(12*i, zt.length());
		    			  }else{ 
		    				  s = zt.substring(12*i, 12*i+12);
		    			  }
		    			  utfS = new String(base64.encode(s.getBytes("UTF-8")));
		    		 }
		    		 sList.add(s);
		    		 ztList.add(utfS);
		    	 }
		     }


這時候可以吧所有的進行過base64.ENCONDE的資料都放入到list裡面 這時候
   
		     StringBuffer st = new StringBuffer("=?UTF-8?B?");
		     for(int i = 0;i<ztList.size();i++){
		    	 st.append(ztList.get(i).toString()) ;
		     }
		     st.append("?=");
		     message.setSubject(st.toString());

把list裡面的資料一個一個的迴圈放進去,最後放入標題,這樣再長的題目也不會出現亂碼了。

有其他問題的歡迎補充討論。

相關推薦

javaMail 傳送郵件 標題出現亂碼

這裡主要是為大家講解的標題或者附件名稱過長出現亂碼的解決方法: 在傳送郵件的時候 如果標題過長,則會出現亂碼 解決方法是 將傳入的標題分段進行轉碼 例如 傳入的String zt(很長很長的一個String) 這時候 可以吧這個字串進行擷取 if(zt.le

php mail函式傳送郵件header

今天用php的mail函式傳送一個郵件,其中header部分是用html拼出來的一個表格,但發出來之後會發現表格會有部分顯示不正常,比如"<tr><td>a</td><td>b</td><td>c<

javaMail傳送郵件標題/發件人/附件名稱亂碼

javaMail傳送郵件subject會亂碼。 解決辦法: 方法一 在設定主題message.setSubject("なにがありましたら、伝えてくださいね"); 之前設定System.setProperty("mail.mime.charset","UTF-8"); 方法

JavaMail傳送郵件出現MailSSLSocketFactory異常問題

昨天晚上在調畢業設計程式的時候,系統中有一個傳送郵件的功能,但是在點擊發送後,程式報了錯,異常資訊是 java.lang.ClassNotFoundException: com.sun.mail.util.MailSSLSocketFactory,然後第一反應是jar包中沒有這個類,然後在ma

javamail傳送郵件時附件名顯示為亂碼的解決

在使用javamail api開發郵件服務系統時,我們常常會碰到中文亂碼問題。傳送名稱含中文的附件到郵件伺服器,用別的郵件接收程式接收到的附件名顯示為亂碼解決辦法:在呼叫MimeBodyPart的setFileName()時使用MimeUtility進行編碼。例如:// mb

Java mail 郵件傳送 附件檔名的問題 版本1.5及以上

在使用javamail 1.5版本的時候,如果附件檔名過長,會錯誤顯示為“未命名的附件 00439.dat” 解決方案如下: 一、Javamail jar包退回1.4版本 二、修改引數mail.mime.splitlongparameters為 false 1、新增以

Spring JavaMail傳送郵件

JavaMail的介紹      JavaMail,顧名思義,提供給開發者處理電子郵件相關的程式設計介面。它是Sun釋出的用來處理email的API。它可以方便地執行一些常用的郵件傳輸。    雖然JavaMail是Sun的A

SpringBoot整合JavaMail傳送郵件 --轉載

JavaMail是SUN提供給廣大Java開發人員的一款郵件傳送和接受的一款開源類庫,支援常用的郵件協議,如:SMTP、POP3、IMAP,開發人員使用JavaMail編寫郵件程式時,不再需要考慮底層的通訊細節如:Socket而是關注在邏輯層面。JavaMail可以傳送各種複雜MIME格式的郵件內容

java使用javamail傳送郵件

1.pom.xml檔案配置 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.

利用JavaMail傳送郵件:smtp.163.com

一、利用JavaMail傳送郵件案例: 1、maven專案結構: 2、先在pom.xml裡邊加入Javamail依賴,系統會根據座標自動下載mail包(前提是配置好了maven): 3、配置email.properties屬性檔案,主要是為了不更改程式碼的前提下,該改變傳送郵件的一些基本資訊:

Android 使用javamail傳送郵件

專案需要activation.jar,additionnal.jar,mail.jar 下載三個包 編寫郵件傳送步驟: 設定伺服器 新增郵箱認證 設定認證的Session(重要) 根據Session獲取郵件物件(MimeMessage) 郵件物件的填充(發件人,收

JavaMail 傳送郵件的程式

JavaMail01:  package com.yuming.test; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail

文章列表中文章標題的做法

<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

JavaMail傳送郵件API簡單介紹

主要API: 1、Message類:建立解析郵件的內容 2、Transport類:傳送郵件的API 3、Store類:接收郵件的API 4、Session類:配置郵件伺服器的主機名,埠號,採用的郵件傳送和接收的協議。 JavaMail傳送郵件相關的jar包: 1、activ

利用JavaMail傳送郵件示例

    最近閒來無事,為了鞏固一下知識點,寫了一個利用JavaMail傳送郵件的例子。只寫了一個傳送的例子,以後有時間再寫下接收的例子。 1、簡單介紹一下JavaMail的傳送步驟 根據郵件會話屬性和密碼驗證器構造一個傳送郵件的session會話 通過session會話

使用javamail傳送郵件(文字+附件)

java發動郵件其實很簡單,這是使用Javamail來實現,使用maven管理 1.導包:這兩個包缺一不可 <dependency> <groupId>javax.mail</groupId>

使用javamail傳送郵件

在java web專案我們經常會使用到傳送郵件,比如傳送告警通知,對實時性要求不太高的專案就可以發郵件,畢竟是免費的嘛,這裡寫了幾段java傳送郵件的程式碼,參考http://www.iteye.com/topic/352753,自己又改了一下,比如傳送附件,多個抄送人等。

android javamail傳送郵件zip壓縮包在qq郵箱不顯示字尾名問題

其實這就是zip包名中文亂碼, MimeBodyPart attachmentPart = new MimeBodyPart();           FileDataSource fds = new FileDat

airflow EmailOperator 傳送郵件 附件檔名丟失或亂碼問題

開始使用airflow 最早開始使用airflow是因為公司的服務過度 依賴crontab了,完全通過時間進行任務排程,而且不便於追蹤任務執行情況,也不好處理任務之間的依賴關係。更不要說管理多伺服器的crontab問題了。 於是自己進行軟體選型,查閱相關資料。因為本身是做資料工作的,

excel/csv等表格匯出資料數字型別出現科學計數法的解決方案

和匯出excel/csv的方式或者語言沒有太大關係 Excel顯示數字時,如果數字大於12位就會自動轉化為科學計數法 如果數字大於15位,它不僅用於科學技術費表示,還會只保留高15位,其他位都變0。