Ⅰ javamail發送附件,接收方附件名不符
fileName = MimeUtility.decodeText(fileName);
Ⅱ javamail 收郵件時收件人別名亂碼怎麼解決
先判斷帶別名郵箱是什麼編碼,然後用javaMail API 自帶的MimeUtility.decodeText(「別名」)方法處理下別名就OK了、
滿意請採納
Ⅲ JavaMail怎麼徹底解決發送出的郵件中 附件名 亂碼問題 MimeUtility.encodeText(fileName1)這個方法不頂用
這樣可以解決,試試吧:回答:
BodyPart bp = new MimeBodyPart();
int indexof =filename.lastIndexOf("/");
String fileNameNew=MimeUtility.encodeText(filename.substring(indexof),"utf-8",null);
DataSource dataSourse=new FileDataSource(filename);
bp.setDataHandler(new DataHandler(dataSourse));
bp.setFileName(fileNameNew);
mp.addBodyPart(bp);
Ⅳ JAVAmail加入附件後正文亂碼,主要功能代碼如下,標題其它都正常,就正文亂碼,求高手解答
設置編碼格式
Ⅳ 如何解決JAVAMAIL發送html格式郵件時的亂碼問題
是由抄於編碼不同造成的亂碼,應首先試一試轉換編碼的方法。因為這種編碼大多出現在中文郵件上。因此,當亂碼出現時首先應當檢查編碼方式是否為「簡體中文(GB2312)」,如果不是可用滑鼠點取「查看」菜單下的「編碼」選項,選中「簡體中文(GB2312)」編碼方式,如果不行,切換成其他編碼試試,通常問題都能得到解決。
Ⅵ 郵箱下載附件時文件名顯示為亂碼怎麼辦
用ie登錄winmail郵箱下載附件時文件名總是顯示為亂碼,還得手動改回來怎麼辦?下面我告訴你解決方法!
打開瀏覽器,然後在命令欄上點擊“工具”,再單擊“兼容性視圖設置”選項。(如果找不到命令欄,請見下面喚出命令欄的方法。)
在添加此網站下的輸入框中輸入目標郵箱站點地址,然後點擊”確定“鍵。
確定郵箱地址在兼容性視圖網站列表中,且”在兼容性視圖中顯示internet站點“單選框被選中。
IE喚出命令欄的方法:如圖所示。
END
Ⅶ 有關javamail的郵件附件的路徑和文件名中文亂碼問題
你可以試試javamail包中自復帶的編碼解碼制方法
import javax.mail.internet.MimeUtility; 包
// 解決文件名的中文問題
MimeUtility.decodeText(「attachment」);
// 解決標題的中文問題
MimeUtility.encodeText(」subject「);
這兩個方法應該可以解決你的問題,我就是用的這兩個方法
Ⅷ 關於javamail讀取中文路徑和文件名亂碼的問題
你的這行代碼attachName=new String(attachName.getBytes("gb2312"),"ISO8859-1");應該修改成attachName=new String(attachName.getBytes("ISO8859-1"),"gb2312");還有就是郵件中文亂碼問題。在界面傳遞時,中文通過一定編碼格式編碼後在傳給另外一個界面,接收界面如果要正確的顯示中文,應該正確的解碼。可以使用jdk1.6提供MimeUtility類。將 FileDataSource fds=new FileDataSource(filename);修改為:
FileDataSource fds=new FileDataSource(MimeUtility.encodeText(filename));這樣的話應該能解決附件亂碼問題。這只是自己膚淺的認識,可能有些地方還有漏洞,往高手看後指點!!
=====================================================================
下面是敝人一段中文處理的代碼,可以做參考
public class Demo3
{
/**
* 復雜郵件含附件+中文附件名_回信地址_友好名稱
* @param args
*/
public static void main(String[] args) throws Exception
{
//配置環境
Properties pros = new Properties();
pros.setProperty("mail.smtp.auth", "true");
pros.setProperty("mail.transport.protocol", "smtp");
Session session = Session.getInstance(pros);
session.setDebug(true);
//創建衛星
Message msg = new MimeMessage(session);
//設置msg的一些信息--發件人、主題、內容..
msg.setFrom(new InternetAddress("\""+MimeUtility.encodeText("超越")+"\" <[email protected]>"));
msg.setRecipients(RecipientType.TO,
InternetAddress.parse(MimeUtility.encodeText("畢老師")+" <[email protected]>,"+MimeUtility.encodeText("王老師")+" <[email protected]>")
);
msg.setReplyTo(InternetAddress.parse("[email protected]"));
MimeMultipart bodyMultipart = new MimeMultipart("mixed");
msg.setContent(bodyMultipart);
MimeBodyPart appurt1 = new MimeBodyPart();
MimeBodyPart appurt2 = new MimeBodyPart();
MimeBodyPart contentPart = new MimeBodyPart();
bodyMultipart.addBodyPart(appurt1);
bodyMultipart.addBodyPart(appurt2);
bodyMultipart.addBodyPart(contentPart);
appurt1.setDataHandler(new DataHandler(new FileDataSource("")));
appurt1.setFileName("");//重要
appurt2.setDataHandler(new DataHandler(new FileDataSource("")));
appurt2.setFileName("");
MimeMultipart contentMultipart = new MimeMultipart("related");
contentPart.setContent(contentMultipart);
MimeBodyPart picPart = new MimeBodyPart();
MimeBodyPart htmlPart = new MimeBodyPart();
contentMultipart.addBodyPart(picPart);
contentMultipart.addBodyPart(htmlPart);
picPart.setDataHandler(new DataHandler(new FileDataSource("")));
picPart.setHeader("Content-Location", "www.sohu.com/log.jpg");
htmlPart.setText("圖片<img src=www.sohu.com/log.jpg/>", "text/html;charset=gbk");
msg.saveChanges();
//創建火箭
Transport transport = session.getTransport();
transport.connect("smtp.sina.com", 25, "[email protected]", "*****");
//火箭發送衛星
transport.sendMessage(msg, InternetAddress.parse("aa,aaa"));
transport.close();
}
}
Ⅸ java:附件中文名稱亂碼。。。
將以下各項統一編碼為utf-8
德國伺服器編碼
項目編碼
jsp及其它文件頭的編碼
Ⅹ java 接收郵件附件亂碼
imeUtility.encodeWord是進行編碼,MimeUtility.encodeWord是進行解碼
無論附件中文件是什麼樣的字元,都可以進行正確的解碼,但是當文件都是英文
文字的時候卻會包錯,為null,英文這個時候不支持全英文,所以這個時候應該:
if(!part_FileName.endsWith("?=")) //是全英文
{
直接賦值
}
else
{
MimeUtility.decodeWord(文件名字);
}
messageBodyPart.setFileName(MimeUtility.encodeWord(fileName));
同樣收中文附件時,以MimeUtility.decodeWord()將編碼後的字元串解碼。
字元編碼及字元集轉換問題
前面提到MIME要解決的另外一個問題就是將SMTP協議不支持的位元組流轉換成
為SMTP 協議支持的位元組流。比如我們要通過郵件傳輸一個附件文檔,該附件文檔就
是一個8bit 位元組流,如果簡單的直接通過SMTP 發送,其最高位信息將被丟失。MIME
規定可以用兩種編碼方式將8bit 的位元組流編碼成為低於8bit 的位元組流,它們分別是
BASE64 編碼(BASE64 將8bit 位元組流編碼成6bit 位元組流)和QP 編碼。這兩種編碼
方式同樣應用在對中文的編碼上。例如如果郵件中文題目叫做「CVS 介紹」,那麼其
編碼後的形式可能為:
Subject: =?gb2312?B?Q1ZTLS3QpMX0LnBwdA==?=
標題字元串以」=?」開始,以」?=」結束。」gb2312」表示字元串的字元集,而以」?」分
隔的」B」就表示此字元串的編碼方式為BASE64。我們處理此標題時就要先將BASE64
編碼的6bit 位元組流轉換為原來的8bit 位元組流,再根據字元集」gb2312」轉換為Java 中的
String 類型。這里可以簡單的使用JavaMail 提供的MimeUtility.decodeWord()靜態方法
將編碼後的字元串解碼。
文章出處:http://www.diybl.com/course/3_program/java/javashl/20071118/86782.html