javaweb-javamail 收取邮件的附件保存,出现很奇葩的错误,各位大神快看看吧

问题描述

javamail 收取邮件的附件保存,出现很奇葩的错误,各位大神快看看吧

/**

* 【保存附件】

/

public void saveAttachMent(Part part) throws Exception {

String fileName = "";

if (part.isMimeType("multipart/")) {

Multipart mp = (Multipart) part.getContent();

for (int i = 0; i < mp.getCount(); i++) {

BodyPart mpart = mp.getBodyPart(i);

String disposition = mpart.getDisposition();

if ((disposition != null)

&& ((disposition.equals(Part.ATTACHMENT)) || (disposition

.equals(Part.INLINE)))) {

fileName = mpart.getFileName();

if((fileName != null)){
if (fileName.toLowerCase().indexOf("gb2312") != -1) {

fileName = MimeUtility.decodeText(fileName);

}

}
saveFile(fileName, mpart.getInputStream());

} else if (mpart.isMimeType("multipart/*")) {

saveAttachMent(mpart);

} else {

fileName = mpart.getFileName();

if ((fileName != null)

&& (fileName.toLowerCase().indexOf("GB2312") != -1)) {

fileName = MimeUtility.decodeText(fileName);

saveFile(fileName, mpart.getInputStream());

}

}

}

} else if (part.isMimeType("message/rfc822")) {

saveAttachMent((Part) part.getContent());

}

private void saveFile(String fileName, InputStream in) throws Exception {

String root = ServletActionContext.getServletContext().getRealPath("/upload");

    File file = new File(root);
    if (!file.exists()) {
        file.mkdir();

}
System.out.println("file path: " + file.toString()+"/"+fileName);

BufferedOutputStream bos = null;

BufferedInputStream bis = null;

try {

bos = new BufferedOutputStream(new FileOutputStream(new File(root,fileName)));

bis = new BufferedInputStream(in);

int c;

byte[] buffer = new byte[500];
while ((c = bis.read()) != -1) { //到这报错了
bos.write(c);

bos.flush();

}

} catch (Exception exception) {

exception.printStackTrace();

throw new Exception("文件保存失败!");

} finally {

bos.close();

bis.close();

}

错误很奇怪:
java.io.IOException: A9 BAD Parse command error
at com.sun.mail.imap.IMAPInputStream.fill(IMAPInputStream.java:151)
at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:208)
at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:234)
at com.sun.mail.util.BASE64DecoderStream.getByte(BASE64DecoderStream.java:354)
at com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:245)
at com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:140)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at ericsson.csdp.entity.ReciveOneMail.saveFile(ReciveOneMail.java:170)
at ericsson.csdp.entity.ReciveOneMail.saveAttachMent(ReciveOneMail.java:135)
at ericsson.csdp.service.hc.RecordService.updateRecordFromEmail(RecordService.java:2063)
at ericsson.csdp.service.hc.RecordService$$FastClassByCGLIB$$fd58d774.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:698)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:55)

解决方案

应该是系统的安全性能做的太好了把,苹果系统一般都 有

时间: 2024-04-28 03:43:03

javaweb-javamail 收取邮件的附件保存,出现很奇葩的错误,各位大神快看看吧的相关文章

javamail收取邮件正文中带有图片的问题,急求

问题描述 javamail收取邮件正文中带有图片的问题,急求 使用javamail解析获取的邮件,当邮件正文中含有图片时,该如何解析?最好有demo! 解决方案 补充当前解析类 @Service public class AutoReadEmailServiceImpl extends BaseService<Question> implements AutoReadEmailService { private static String POP3SERVER = "pop.exma

javamail 邮件关联-用Javamail收取邮件后,不知道邮件是否是回复邮件

问题描述 用Javamail收取邮件后,不知道邮件是否是回复邮件 我需要将从邮件服务收取的邮件进行分类,如果原始邮件以及在此之上回复的邮件为邮件为一类,但我无法知道原始邮件和被回复邮件之间的关联

javaweb项目,tomcat启动异常报错,spring文件初始化问题,大神help

问题描述 javaweb项目,tomcat启动异常报错,spring文件初始化问题,大神help 本地启动没问题,把编译好的项目放到别的机器就不行,tomcat版本是一样的,都是8.0.12,jdk也是一样的,本地的系统是windows,另外一台是linux ERROR 2015-08-13 14:50:01,873 ContextLoader:initWebApplicationContext - Context initialization failed java.lang.NullPoin

JavaMail收取邮件时 收取带附件邮件的邮件正文

问题描述 用javamail发送邮件时,如果邮件带附件,则邮件的正文需要bodypart的setText方法来存储,收邮件时,用什么方法把这个里面的东西提取出来呢?不是那个用stringbuffer之类的这个内容是通过jsp上的test输入的只是text,我需要把它提取出来存到一个string中

.NET 使用WebBrowser截图保存后图片为X,求大神解答!

问题描述 publicclassPictureCut{string_Url;string_FileName;publicvoidSave(stringurl,stringfilename){_Url=url;_FileName=filename;varm_thread=newThread(_Generate);m_thread.SetApartmentState(ApartmentState.STA);m_thread.Start();m_thread.Join();//varwebBrowse

用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.*;

JavaWeb中JavaMail创建邮件和发送邮件_java

一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 --用于指明发件人to字段     --用于指明收件人subject字段  --用于说明邮件主题cc字段    -- 抄送,将邮件发送给收件人的同时抄送给另一个收件人,收件人可以看到邮件抄送给了谁bcc字段 -- 密送,将邮件发送给收件人的同时将邮件秘密发送给另一个收件人,收件人无法看到邮件密送给

用Jmail做收取邮件附件的程序(转)

用Jmail做收取邮件附件的程序 2001年7月6日 我现在自己在用asp做一个web邮件处理程序,就和网上263,163的web电子邮箱.我在制作自己的web邮件系统的时候,使用的是网上很流行的asp邮件处理组件aspmail和jmail分别作web邮件的发件和收件程序,现在的问题就是我在用我做的web收件程序收一个带有附件的邮件的时候,下载下来的附件会被损坏(比如说:我在邮件中粘贴一个50k大小的jpg图片附件,但用web程序收下来的时候图片大小就变成40k的了,并且图片打开后看不到东西),

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

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