Ⅰ 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