java解析.eml文件_Java解析eml文件

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Part; import javax.mail.Session; import javax.mail.internet.MimeMessage; public class eml {     public static void main(String args[]) {         test();     }     public static void test() {         try {             Properties props = new Properties();             Session session = Session.getDefaultInstance(props,                                                          null);             InputStream inMsg;             inMsg = new FileInputStream("D:\\test.eml");             Message msg = new MimeMessage(session,                                           inMsg);             String[] date=msg.getHeader("Date");          //   String[] from=          //   String[] to=                                       if (msg.isMimeType("multipart/*")                 || msg.isMimeType("MULTIPART/*")) {                 Multipart mp = (Multipart) msg.getContent();                 int totalAttachments = mp.getCount();                 if (totalAttachments > 0) {                     for (int i = 0; i < totalAttachments; i++) {                         Part part = mp.getBodyPart(i);                         String s = getMailContent(part);                         String attachFileName = part.getFileName();                         String disposition = part.getDisposition();                         String contentType = part.getContentType();                         if ((attachFileName != null && attachFileName.endsWith(".ics"))                             || contentType.indexOf("text/calendar") >= 0) {                             String[] dateHeader = msg.getHeader("date");                         }                     }                     inMsg.close();                 }             }         } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (MessagingException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } catch (Exception e) {             e.printStackTrace();         }     }     public static String getMailContent(Part part)             throws Exception {         String contenttype = part.getContentType();         int nameindex = contenttype.indexOf("name");         boolean conname = false;         if (nameindex != -1) {             conname = true;         }         StringBuilder bodytext = new StringBuilder();         if (part.isMimeType("text/plain")             && !conname) {             bodytext.append((String) part.getContent());         } else if (part.isMimeType("text/html")                    && !conname) {             bodytext.append((String) part.getContent());         } else if (part.isMimeType("multipart/*")) {             Multipart multipart = (Multipart) part.getContent();             int counts = multipart.getCount();             for (int i = 0; i < counts; i++) {                 getMailContent(multipart.getBodyPart(i));             }         } else if (part.isMimeType("message/rfc822")) {             getMailContent((Part) part.getContent());         } else {         }         return bodytext.toString();     } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值