知识大全 用Javamail写的解析MimeMessage的程序

Posted 地址

篇首语:生活是活给自己看的,你有多大成色,世界才会给你多大脸色。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Javamail写的解析MimeMessage的程序相关的知识,希望对你有一定的参考价值。

用Javamail写的解析MimeMessage的程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  package coffeecaebmail;    import java io *;  import java text *;  import java util *;  import javax mail *;  import javax mail internet *;    public class PraseMimeMessage    private MimeMessage mimeMessage = null;    private String saveAttachPath = ;     //附件下载后的存放目录    private StringBuffer bodytext = new StringBuffer(); //存放邮件内容的StringBuffer对象    private String dateformat = yy MM dd HH:mm ;    //默认的日前显示格式        /**     * 构造函数 初始化一个MimeMessage对象     */    public PraseMimeMessage()    public PraseMimeMessage(MimeMessage mimeMessage)      this mimeMessage = mimeMessage;      System out println( create a PraseMimeMessage object );          public void setMimeMessage(MimeMessage mimeMessage)      this mimeMessage = mimeMessage;            /**     * 获得发件人的地址和姓名     */    public String getFrom()throws Exception      InternetAddress address[] = (InternetAddress[])mimeMessage getFrom();      String from = address[ ] getAddress();      if(from == null) from= ;      String personal = address[ ] getPersonal();      if(personal == null) personal= ;      String fromaddr = personal+ < +from+ > ;      return fromaddr;          /**     * 获得邮件的收件人 抄送 和密送的地址和姓名 根据所传递的参数的不同     * to 收件人 cc 抄送人地址 bcc 密送人地址     */    public String getMailAddress(String type)throws Exception      String mailaddr = ;      String addtype = type toUpperCase();      InternetAddress []address = null;      if(addtype equals( TO ) || addtype equals( CC ) ||addtype equals( BCC ))        if(addtype equals( TO ))          address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType TO);        else if(addtype equals( CC ))          address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType CC);        else          address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType BCC);                if(address != null)          for(int i= ;i<address length;i++)            String email=address[i] getAddress();            if(email==null) email= ;            else              email=MimeUtility decodeText(email);                        String personal=address[i] getPersonal();            if(personal==null) personal= ;            else              personal=MimeUtility decodeText(personal);                        String positeto=personal+ < +email+ > ;            mailaddr+= +positeto;                    mailaddr=mailaddr substring( );              else        throw new Exception( Error emailaddr type! );            return mailaddr;            /**     * 获得邮件主题     */    public String getSubject()throws MessagingException      String subject = ;      try        subject = MimeUtility decodeText(mimeMessage getSubject());        if(subject == null) subject= ;      catch(Exception exce)            return subject;            /**     * 获得邮件发送日期     */    public String getSentDate()throws Exception      Date sentdate = mimeMessage getSentDate();      SimpleDateFormat format = new SimpleDateFormat(dateformat);      return format format(sentdate);            /**     * 获得邮件正文内容     */    public String getBodyText()      return bodytext toString();            /**     * 解析邮件 把得到的邮件内容保存到一个StringBuffer对象中 解析邮件     * 主要是根据MimeType类型的不同执行不同的操作 一步一步的解析     */    public void getMailContent(Part part)throws Exception      String contenttype = part getContentType();      int nameindex = contenttype indexOf( name );      boolean conname =false;      if(nameindex != ) conname=true;        System out println( CONTENTTYPE: +contenttype);      if(part isMimeType( text/plain ) && !conname)        bodytext append((String)part getContent());      else if(part isMimeType( text/ ) && !conname)        bodytext append((String)part getContent());      else if(part isMimeType( multipart/* ))        Multipart multipart = (Multipart)part getContent();        int counts = multipart getCount();        for(int i= ;i<counts;i++)          getMailContent(multipart getBodyPart(i));              else if(part isMimeType( message/rfc ))        getMailContent((Part)part getContent());      else          /**     * 判断此邮件是否需要回执 如果需要回执返回 true 否则返回 false      */    public boolean getReplySign()throws MessagingException      boolean replysign = false;      String needreply[] = mimeMessage getHeader( Disposition Notification To );      if(needreply != null)        replysign = true;            return replysign;            /**     * 获得此邮件的Message ID     */    public String getMessageId()throws MessagingException      return mimeMessage getMessageID();            /**     * 【判断此邮件是否已读 如果未读返回返回false 反之返回true】     */    public boolean isNew()throws MessagingException      boolean isnew = false;      Flags flags = ((Message)mimeMessage) getFlags();      Flags Flag []flag = flags getSystemFlags();      System out println( flags s length: +flag length);      for(int i= ;i<flag length;i++)        if(flag[i] == Flags Flag SEEN)          isnew=true;          System out println( seen Message );          break;                    return isnew;            /**     * 判断此邮件是否包含附件     */    public boolean isContainAttach(Part part)throws Exception      boolean attachflag = false;      String contentType = part getContentType();      if(part isMimeType( multipart/* ))        Multipart mp = (Multipart)part getContent();        for(int i= ;i<mp getCount();i++)          BodyPart mpart = mp getBodyPart(i);          String disposition = mpart getDisposition();          if((disposition != null) &&((disposition equals(Part ATTACHMENT)) ||(disposition equals(Part INLINE))))            attachflag = true;          else if(mpart isMimeType( multipart/* ))            attachflag = isContainAttach((Part)mpart);          else            String contype = mpart getContentType();            if(conty cha138/Article/program/Java/JSP/201311/19435

相关参考

知识大全 用javamail显示复合邮件的内容的亲身体会

  复合邮件既含图片又含正文一般是格式显示简单理解的话就是非常漂亮的那种邮件    (个人注解不很全面)        当我们需要做一个收取邮件的程序时我们该如何去显示复合邮件的内容呢?(原问题见专家

知识大全 JavaMail常见问题之applet 中的 JavaMail

JavaMail常见问题之applet中的JavaMail  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 实例代码解析

Javamail操作指南:实例代码解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  怎样才算比

知识大全 JavaMail 发送附件的例子

JavaMail发送附件的例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!      Herei

知识大全 使用JavaMail 实现邮件发送

使用JavaMail实现邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   im

知识大全 JAVAMAIL邮件服务器

JAVAMAIL邮件服务器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你认为没有必要设置

知识大全 在JSP中使用JavaMail

在JSP中使用JavaMail  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是JavaMa

知识大全 在JSP中使用JavaMail[1]

在JSP中使用JavaMail[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 在JSP中使用JavaMail[2]

在JSP中使用JavaMail[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 JavaMail常见问题之编程问题

JavaMail常见问题之编程问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问从哪里可以学