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(); } }
java解析.eml文件_Java解析eml文件
最新推荐文章于 2024-04-29 10:32:27 发布