处理中文问题,给你一段代码看一下:
public String getsubject(Message m) throws Exception {
boolean bgetstr;
String temps;
String[] ta1 = m.getHeader("Subject");
String _subject;
if (ta1 != null)
_subject = ta1[0];
else
_subject = "";
if (_subject.indexOf("=?gb2312") != -1
|| _subject.indexOf("=?GBK") != -1
|| _subject.indexOf("=?utf-8") != -1)
bgetstr = false;
else
bgetstr = true;
try {
temps = MimeUtility.decodeText(_subject);
} catch (UnsupportedEncodingException E) {
return _subject;
}
if (temps.length() == 0) {
temps = "£¨ÎÞÖ÷Ì⣩";
bgetstr = false;
}
if (bgetstr == false)
return temps;
else
return getstr(temps);
}
public static String getstr(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859-1");
String temp = new String(temp_t);
return temp;
} catch (Exception e) {
return "";
}
}
public String getsubject(Message m) throws Exception {
boolean bgetstr;
String temps;
String[] ta1 = m.getHeader("Subject");
String _subject;
if (ta1 != null)
_subject = ta1[0];
else
_subject = "";
if (_subject.indexOf("=?gb2312") != -1
|| _subject.indexOf("=?GBK") != -1
|| _subject.indexOf("=?utf-8") != -1)
bgetstr = false;
else
bgetstr = true;
try {
temps = MimeUtility.decodeText(_subject);
} catch (UnsupportedEncodingException E) {
return _subject;
}
if (temps.length() == 0) {
temps = "£¨ÎÞÖ÷Ì⣩";
bgetstr = false;
}
if (bgetstr == false)
return temps;
else
return getstr(temps);
}
public static String getstr(String str) {
try {
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859-1");
String temp = new String(temp_t);
return temp;
} catch (Exception e) {
return "";
}
}
解决方案 »
- Jboss下载的时候的提示
- 日期查询
- 超链接问题,请多指教
- Sun Portal, OpenSSO, GlassFish, Single sign-on
- ant不是内部命令
- 实在是没有折了,到底问题出在哪里呢?请高手帮忙阿
- *** 干了5年Java还解决不了的基础题,有愿意捡分的帮我想想 ***
- Resin中的各个lib目录该怎么理解
- 在struts中使用log4j,那个log配置的xml文件的路径,在程序中如何写?
- 一个简单的问题 在线结贴!!!!
- CMP2.0的Find方法返回Collection后怎么处理??敬请大家帮我分析错误原因!!?急!!
- 有关javamail的问题,忘各位大侠指点~
message mess=folder.getMessage(messageid);
if(mess.isMimeType("multipart/*")){
Multipart multipart=(Multipart)mess.getContent();for(int i=0,n=multipart.getCount();i<n;i++){
Part part=multipart.getBodyPart(i);String disposition=part.getDisposition();
if(disposition!=null&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE))){FileOutputStream outFile=new FileOutputStream(part.getFileName());BufferedInputStream in=new BufferedInputStream(part.getInputStream());int c;
while((c=in.read())!=-1){
outFile.write(c);
}
outFile.close();
}
}试试看
不知道行不行
没用过
InputStream[] inputStream=null;
Object o=themessage[number].getContent();//当Message对象含有附件时,其内容会以Multipart的形式存在
if(o instanceof String)
{
//不含附件
}
else if(o instanceof Multipart)
{
//可能含有附件
//以Multipart的getBodyPart方法取得内容部分,并以getDisposition方法取得邮件的配置
Multipart mp =(Multipart)o;
fileName=new String[mp.getCount()];
inputStream=new InputStream[mp.getCount()];
for(int i=0,n=mp.getCount();i<n;i++)
{
Part part=mp.getBodyPart(i);
if(i==0)
{Content=part.getContent().toString();}
String disposition =part.getDisposition();
//判断Multipart中是否含有附件的方法.则是依据getDisposition所返回的内容
if((disposition !=null)&&(disposition.equals(Part.ATTACHMENT)||disposition.equals(Part.INLINE)))
{
fileName[i]=part.getFileName();
System.out.println(fileName[i]);
fileName[i]=fileName[i].valueOf(i)+fileName[i].substring(fileName[i].indexOf("."),fileName[i].length());
System.out.println(fileName[i]);
inputStream[i]=part.getInputStream();
System.out.println(inputStream[i].toString());
String pathName="D:\\Online\\defaultroot\\mail\\附件\\";
File file=new File(pathName + fileName[i]);
FileOutputStream outfile=new FileOutputStream(file);
BufferedInputStream br=new BufferedInputStream(inputStream[i]);
BufferedOutputStream bw=new BufferedOutputStream(outfile);
int b;
while((b=br.read())!=-1)
{
bw.write(b);
}
bw.flush();
outfile.close();
}
}
}
filenames=MimeUtility.decodeText(filenames);//中文附件名编码
try{
String temp=s;
byte[] tempb=temp.getBytes("ISO8859-1");
String result=new String(tempb);
return result;
}
catch(Exception e){ }
return "null";
}
如果你有收邮件这个例子,文件能不能发到我的信箱[email protected]