当前位置:  技术问答>java相关

用JavaMail接收邮件时如何判断邮件是否有附件?

    来源: 互联网  发布时间:2017-03-25

    本文导语:  用JavaMail接收邮件时如何判断邮件是否有附件? | Q: How do I read a message with an attachment and save the attachment?  A: As described above, a message with an attachment is represented in MIME as a multip...

用JavaMail接收邮件时如何判断邮件是否有附件?

|
Q: How do I read a message with an attachment and save the attachment? 
A: As described above, a message with an attachment is represented in MIME as a multipart message. In the simple case, the results of the Message object's getContent method will be a MimeMultipart object. The first body part of the multipart object wil be the main text of the message. The other body parts will be attachments. The msgshow.java demo program shows how to traverse all the multipart objects in a message and extract the data of each of the body parts. The getDisposition method will give you a hint as to whether the body part should be displayed inline or should be considered an attachment (but note that not all mailers provide this information). 

To save the data in a body part into a file (for example), use the getInputStream method to access the attachment content and copy the data to a FileOutputStream. 

Note that there are also more complicated cases to be handled as well. For example, some mailers send the main body as both plain text and html. This will typically appear as a multipart/alternative content (and a MimeMultipart object) in place of a simple text body part. Also, messages that are digitally signed or encrypted are even more complex. Handling all these cases can be challenging. Please refer to the various MIME specifications and other resources listed on our main page. 


|
Object content = message.getContent();
        if (content instanceof Multipart) {
          handleMultipart((Multipart)content);//处理附件
        } else {
          handlePart(message);
        }

|
Multipart mp =null;
Part part=mp.getBodyPart(j);


              String disposition = part.getDisposition();
              if ((disposition !=null) &&
                 ((disposition.equals(Part.ATTACHMENT)||
                  (disposition.equals(Part.INLINE)))))
                  {//saveFile(part.getFileName(),part.getInputStream());
                System.out.println("there is a fujian");
                  }

|
这些方法都只是适合于附件不是中文,或者中文名较短的情况!
福建中文明成过长时就不是用了,因为javamail Api中的
part.getDisposition()根本就不能得到正确的数据了!!

比较保险的办法是-------
          自己分析每一个part的 content-type

    
 
 

您可能感兴趣的文章:

  • 我用Javamail给对方发送邮件,如何判断对方是否已经收到邮件?
  • javamail如何删除服务器上的邮件?
  • Java邮件接口 JavaMail
  • JavaMail中如何获取所有新邮件?
  • JavaMail中如何改变邮件状态?
  • javamail中关于收邮件的问题!!!
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • 怎么用javamail彻底删除邮件。不是放到垃圾箱里。。
  • 请问用JavaMail如何删除某一特定邮件?高分相送!
  • 用javamail怎么获得邮件内容?
  • 高分求解:利用JavaMail发送邮件时,能否做到不通过SMTP邮件服务器转交,直接将邮件发到对方邮箱中.
  • 请问怎样用JAVAMAIL实现自动给用户发送邮件的功能?弄好了送100分
  • 请教用javamail群发邮件的原理。
  • javamail对新邮件的处理
  • 用JavaMail收到的邮件,有什么方法能知道主题及内容的编码方式呢?
  • javamail收邮件出现问题
  • 请问JavaMail如何改变已读邮件的状态?
  • 有谁用过javamail做过邮件系统的请提一下建议,答者有分!
  • 用javamail如何获得邮箱中最新的邮件
  • JavaMail的接收html问题
  • javaMail接收附件的问题
  • 高手请帮忙!!JAVAMAIL开发接收中文附件问题,解决再送100
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 为什么用JAVAMAIL发附件,用OUTLOOK收下来附件文件名的中文成了乱码
  • 怎么用javamail发送附件,小弟刚接触,请各位大侠指教,谢谢!!!
  • 请问各位大虾,不用javaMail如何才能发送附件。
  • javamail附件名称的问题
  • javaMail怎么发送多附件???
  • javamail的中文附件名问题。。。:(
  • 我用javamail包,取Mail的附件时,为什么的不到中文字符串?
  • 用JavaMail发带附件的mail
  • 怎样显示javamail的附件名为中文?
  • 还是javamail附件中文名字显示问题。
  • 请问javamail是怎么实现附件的发送和接受的?
  • 请问如何在JAVAMAIL中显示图片,如果附件中不是图片,如何给它加上链接让用户下载呢?
  • 用javamail发送附件名为中文名时的一个问题,送分45!!!!
  • javamail 中发邮件时中文附件名的问题
  • 如何JavaMail不将附件Base64编码!
  • 问一个通过javamail保存附件的问题
  • javamail附件中文名字乱码问题!
  • 利用javamail保存邮件附件时遇到的问题,解决了立刻给分
  • javamail 的附件。。
  • 我用javamail,发附件的功能怎么做呢?
  • 急! 500分求助! javamail VS esmtp server 的不兼容性问题, javamail高手请进
  • 请给一个javamail的程序实例和javamail api 的下载地址100分!
  • 在那里能下载javamail,高分送上
  • 初学javamail
  • 请教熟悉JavaMail的大虾请帮帮忙,多谢了!
  • javamail如何安装?? (45分)
  • javamail-android
  • 怎样使用javamail发送带有html格式信息的文件
  • 请问JavaMail的API在什么地方(我用的是VisualAge for java 4.0),急!
  • 用javamail怎么可以成批发送
  • 关于javamail的奇怪问题,请大家相助!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3