javaMail发附件,附件名的处理问题

问题描述

郁闷啦,做个邮件客户端不是这报错就是那报错,我在火弧下发送邮件,附件名正常,但当我到了IE下时,附件名就变成了路径名+附件名了,我用转义字符也不行,大侠们有没有什么简单快捷的方法啊?在线等待贴一下我保存附件的代码:publicvoidsaveAttachMent(Partpart)throwsException{StringfileName="";if(part.isMimeType("multipart/*")){Multipartmp=(Multipart)part.getContent();for(inti=0;i<mp.getCount();i++){BodyPartmpart=mp.getBodyPart(i);Stringdisposition=mpart.getDisposition();if((disposition!=null)&&((disposition.equals(Part.ATTACHMENT))||(disposition.equals(Part.INLINE)))){fileName=mpart.getFileName();if(fileName.toLowerCase().indexOf("utf-8")!=-1){fileName=MimeUtility.decodeText(fileName);if(fileName.lastIndexOf("\")>0){fileName.replace("\","_");}}if(fileName.toLowerCase().indexOf("gb2312")!=-1){fileName=MimeUtility.decodeText(fileName);if(fileName.lastIndexOf("\")>0){fileName.replace("\","_");}}System.out.println(fileName);saveFile(fileName,mpart.getInputStream());}elseif(mpart.isMimeType("multipart/*")){saveAttachMent(mpart);}else{fileName=mpart.getFileName();if((fileName!=null)&&(fileName.toLowerCase().indexOf("utf-8")!=-1)){fileName=MimeUtility.decodeText(fileName);if(fileName.lastIndexOf("\")>0){fileName.replace("\","_");}saveFile(fileName,mpart.getInputStream());}elseif((fileName!=null)&&(fileName.toLowerCase().indexOf("gb2312")!=-1)){fileName=MimeUtility.decodeText(fileName);if(fileName.lastIndexOf("\")>0){fileName.replace("\","_");}saveFile(fileName,mpart.getInputStream());}}}}elseif(part.isMimeType("message/rfc822")){saveAttachMent((Part)part.getContent());}}

解决方案

解决方案二:
BodyPartbp2=newMimeBodyPart();DataSourceds=newFileDataSource(file);bp2.setDataHandler(newDataHandler(ds));bp2.setFileName(MimeUtility.encodeWord("文件名.xls"),"gb2312",null));
解决方案三:
我用了截取字符的方法好了,不过还是要谢谢你的回贴

时间: 2024-10-31 08:57:04

javaMail发附件,附件名的处理问题的相关文章

javamail 接收邮件 附件的内容乱码 不是附件名乱码

问题描述 javamail 接收邮件 附件的内容乱码 不是附件名乱码 我最近用javamail 进行邮件操作,如果是pop3协议,接收的附件内容 没问题,但是用imap 接收过来的附件 内容 有一定概率会出现乱码 可是同一封邮件 pop3协议接收 是 没有问题的 解决方案 javamail附件乱码mutt附件内容乱码JavaMail附件中文名称乱码

java中javamail发送带附件的邮件实现方法_java

本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输,JavaMail是可选包,因此如果需要使用的话你需要首先从java官网上下载.目前最新版本是JavaMail1.5.0,下面我们来看看javamail发送带附件的邮件实例 mail.java 代码: 复制代码 代码如下: package mail;

用JavaMail发送带附件的Email

随着网络应用的不断推广,电子邮件越来越多的被大家使用.虽然我们往往将电子邮件与 Foxmail.Outlook 这样的电子邮件客户端联系起来,但是往往我们也需要自己编程实现发送接收邮件,例如在一个网站注册用户后网站发出的回执mail,或者在网络购物的时候,在完成订单后的几分钟之内发送确认电子邮件.对于这样的需求,我们不能通过已有的邮件客户端而需要自己编写邮件发送或者处理程序.在这里向大家讲解一下如何利用JavaMail来实现邮件的收发. 注意:本文只打算讨论JavaMail收发带附件邮件的一些技

struts2集成javamail发邮件示例详解

 这篇文章主要介绍了struts2集成javamail发邮件示例,需要的朋友可以参考下 一.代码预览 这两天在做struts2上的邮件发送.以前的项目有用到spring,用spring提供的邮件支持类很方便可以完成这个功能,但是现在只用struts2的话,就碰到了一系列的问题.   请先将自己下载的 mail.jar,及activation.jar加入到classpath    代码如下: package com.nerve.cloudoffice.common.util;   import j

用javamail发邮件(含附件),用jBuilder3实现

发邮件 //Title:        Your Product Name//Version:      //Copyright:    Copyright (c) 1999//Author:       Your Name//Company:      Your Company//Description:  Your description package Mail; import java.awt.*;import javax.swing.*;import java.awt.event.*;

JavaMail 发送带附件邮件遇到的问题 !

问题描述 大家好,我刚开始接触javamail,遇到一个小问题请大家帮忙解决下.我在发送带附件邮件的时候附件是可以发过去的,但是不管是中文名的还是英文名的附件到了接收邮件的那边都会是带地址的一串名字,例如:CUsersxinge1023Desktop___,_c.txt或CUsersxinge1023Desktop__茆_.jpg乱码问题我能搞定,但是就是搞不通为什么名字是带地址的,请大家帮忙看下,我只想要文件名,而不要前面的那一长串文件路径,我的电脑系统是win7,服务器是tomcat的,谢谢

二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)_python

可以使用Python的email模块来实现带有附件的邮件的发送. SMTP (Simple Mail Transfer Protocol)邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件.大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议.SMTP协议的默认TCP端口号是25. SMTP协议的一个重要特点是它能够接力传送邮件.它工作在两种情况

java中javamail发送带附件的邮件实例

mail.java 代码  代码如下 复制代码 package mail;    import java.util.* ;  import java.io.* ;  import javax.mail.* ;  import javax.mail.internet.* ;  import javax.activation.* ;  public class Mail {      //定义发件人.收件人.SMTP服务器.用户名.密码.主题.内容等      private String disp

用JavaMail发送带附件的邮件

本文根据Ian F. Darwin的<Java Cookbook>整理而成,原书用整章的文字介绍如何发邮件,可能头绪会比较乱,本文则将其浓缩成一篇文章,力求使完全不懂JavaMail的人,都可以根据文中指示稍作修改,拿来就可以用.如果对其中原理还有不清楚,你可以参考原书.一.首先要用到三个java文件:1.MailConstants.java,properties文件的助记符:///////////////////////////////////////////////////////////